2009-11-11 5 views
6

Ich möchte JavaCompiler verwenden, um dynamisch einige Klassen zu erstellen.Ist javax.tools vom JDK abhängig?

Ich habe den Quellcode des javax.tools Pakets gefunden, aber es gibt keine Implementierung; einige Beiträge im Internet sagen, es kommt auf tools.jar, ich bin mir nicht sicher tools.jar Associates mit JRE.

Kann ich das Programm also in einer JRE-Umgebung ausführen, ohne dass JDK installiert ist?

Eine andere Frage, was ist das Implementierungsdetail von JavaCompiler, ist es einen neuen Prozess zu erstellen, um den Befehl javac aufzurufen?

dank

Antwort

8

JRE Notwendigkeit, die Schnittstellen und Klassen in diesem Paket enthalten, aber nicht müssen Implementierungen bieten.

Sun JRE nicht, und gibt null vom Aufruf ToolProvider.getSystemJavaCompiler() zurück.

This other question Adressen Java 5.

Hier ist ein blog post by Morten Nobel-Jørgensen wie Eclipse-Compiler als Implementierung von javax.tools.JavaCompiler zu verwenden.

JavaCompiler javac = new EclipseCompiler(); 
+0

danke, ich habe bereits die Codierung abgeschlossen, aber wenn der getSystemJavaCompiler() null zurückgibt, würde das Programm fehlschlagen. also muss ich es vermeiden – Brodie

+0

Der Blog-Post-Link ist tot, der aktualisierte Link ist [hier] (http://blog.nobel-joergensen.com/2008/07/16/using-eclipse-compiler-to-create- dynamisch-java-objects-2 /) – prunge

+0

@prunge danke. –