bonjour tout J'écris du logiciel qui permettra aux utilisateurs de créer leurs propres classes Java pour une utilisation spécifique dans mon logiciel. De toute évidence, mon logiciel devra peut-être invoquer un compilateur Java pour compiler les classes générées par l'utilisateur à utiliser dans mon programme. Cependant, je ne veux pas obliger les utilisateurs à télécharger et à installer l'ensemble du JDK, il est donc possible d'avoir accès au compilateur Javac Java. Je comprends que dans Jave 6, il y a une nouvelle API de compilateur Java, mais même à ce moment-là, les utilisateurs avec juste la JRE et non le JDK recevront un objet NULL lorsqu'ils essaient d'instancier l'outil de compilateur Java. P>
Ainsi, quelle est la meilleure façon d'activer mon programme de compiler des classes Java tout en exigeant que l'utilisateur final ait simplement installé le JRE sur ses machines? Si cela n'est pas possible, quel est le jeu minimal de fichiers de bibliothèques / jar, dont je disposerais d'installer sur la machine utilisateur? P>
Je suppose que une autre possibilité pourrait être d'utiliser JWS (Javaws) pour lancer l'application sur le Web. Dans ce cas, est-il possible que mon logiciel ne nécessite pas le JDK (principalement des outils.jar je pense)? Aurais-je en quelque sorte à regrouper tools.jar avec mon logiciel? P>
4 Réponses :
On dirait qu'une meilleure solution serait d'utiliser un langage de script pouvant fonctionner dans la JVM sans avoir à être compilé. P>
possible le API de script Java A > serait utile pour vous. Je suis sûr qu'il y a aussi d'autres options. P>
Vous pouvez utiliser standalone Compiler Java de Eclipse . Il n'a pas besoin de JDK installé et c'est un fichier de jar unique que vous pouvez utiliser dans votre projet. C'est le compilateur qui est utilisé à l'intérieur de l'éclipse elle-même, mais il peut également être intégré à d'autres programmes. Vous pouvez trouver la dernière version stable actuelle sur http: / /Townload.eclipse.org/eclipse/downloads/droploads/drops/r-3.6.2-201102101200/index.php , recherchez le compilateur JDT Core Batch. La documentation est disponible chez http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.jdt.doc.isv/guide/jdt_api_compile.htm P>
Vous pouvez également utiliser Janino , qui peut également compiler des unités plus petites que les classes de Java complètes : Blocs, expressions. Ce n'est pas un compilateur complet cependant, il ne prend pas en charge toutes les fonctionnalités de la langue Java que vos utilisateurs utilisent (génériques, annotations, Enums, ...) P>
Java -Jar ECJ-3.6.2.jar -d Gaevfs.bin \ gaevfs.src \ com \ Newatlanta \ Commons \ VFS \ Fournisseur \ gae \ gaefileob ject.java -cp D: \ progxp \ jre6 \ lib \ rt. JAR; D: \ WORKSPACE \ DIYISM.COM.WAR \ Web-in F \ LIB \ appengine-API-1.0-SDK-1.5.5.jar; D: \ Workspace \ Diyism.co m. War \ Web-Inf \ Lib \ COmons-VFS-VFS-VFS-2.0-SNAPSH OT.JAR; D: \ WOOKSPACE \ DIYISM.COM.WAR \ Web-I NF \ LIB \ GAEVFS-0..JA R ; D: \ workspace \ diyis m.com.war \ web-inf \ li b \ communes-journalisation-1. 1.1.jar
Pour utiliser le compilateur Java, vous devez inclure outils.jar code> dans votre application (par exemple, il doit être accessible par le chargeur de classe qui souhaite charger le compilateur - le plus facilement par le chargeur de classe système ). p>
" "NOFOOLS NOREFERRER"> Compilateur texte SSCCE . Comme je mention dans l'aide "..it probablement viole la licence de distribution du Sun." . Je réalise que les gens ici sont «non des avocats», mais si quelqu'un a des théories / interprétations alternatives de la licence, j'aimerais les entendre.
Prenez celui de OpenJDK et ajoutez un lien vers la source, puis.
N'a pas pensé à ça! Il démarquent soigneusement le «problème de la licence». :)