2009-11-11 32 views
6

Chcę użyć JavaCompiler do dynamicznego tworzenia klas.Czy javax.tools zależy od JDK?

Znalazłem kod źródłowy pakietu javax.tools, ale nie ma implementacji; niektóre posty w Internecie mówią, że zależy to od tools.jar, nie jestem pewien, czy tools.jar jest powiązany z JRE.

Czy mogę więc uruchomić program w środowisku JRE bez zainstalowanego JDK?

Kolejne pytanie, jaki jest szczegół implementacji JavaCompiler, czy tworzy nowy proces wywoływania polecenia javac?

dzięki

Odpowiedz

8

potrzeba JRE należą do interfejsów i klas w tym pakiecie, ale nie muszą dostarczyć implementacje.

Środowisko JRE firmy Sun nie zwraca i zwraca wartość null z numeru ToolProvider.getSystemJavaCompiler().

This other question adresy java 5.

Oto blog post by Morten Nobel-Jørgensen na temat korzystania z kompilatora Eclipse jako implementacji javax.tools.JavaCompiler.

JavaCompiler javac = new EclipseCompiler(); 
+0

dziękuję, ja już skończyłem kodowanie, ale jeśli getSystemJavaCompiler() zwraca wartość null, program zawiedzie. więc muszę tego uniknąć – Brodie

+0

Link do wpisu na blogu jest martwy, zaktualizowany link jest [tutaj] (http://blog.nobel-joergensen.com/2008/07/16/using-eclipse-compiler-to-create- dynamic-java-objects-2 /) – prunge

+0

@prunge thanks. –

Powiązane problemy