2012-06-04 13 views

Odpowiedz

14

JavaCompiler jest twoim przyjacielem. Sprawdzić przykład, w jaki sposób można użyć API kompilator

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); 
DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<>(); 
StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null); 
Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromStrings(Arrays.asList("YouFileToCompile.java")); 
JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, diagnostics, null, 
     null, compilationUnits); 
boolean success = task.call(); 
fileManager.close(); 
+0

Próbowałem tego i zastąpił "YouFileToCompile.java" bezwzględną ścieżkę teraz otrzymuję NullPointerException w: StandardJavaFileManager filemanager = compiler.getStandardFileManager (diagnostyka, null, null); (problem?) –

+0

Brzmi jak zmienna 'kompilator' ma wartość' null'. Upewnij się, że masz poprawną instalację Java. Sprawdź to, aby uzyskać pomoc http://www.java.net/node/688208 – GETah

+0

Czy musi to być plik .java? Jeśli mam kod w pliku .txt, czy nadal będzie działać? – JD9999

4

JavaCompiler będzie null jeśli kod jest uruchomiony z JRE dokumentacji here

i tutaj. Potrzebuje JDK, który obejmuje tools.jar.

Powiązane problemy