Compiling external .java files from within Java

2019-01-09 10:15发布

I am making a tool that will write .java files, then (hopefully) compile those files to .class files. All in one process, the user selects a file directory where multiple .java files are written. Now I want the program to compile these Java files.

2条回答
ら.Afraid
2楼-- · 2019-01-09 10:35

JavaCompiler is your friend. Check the documentation here

And here an example on how you could use the compiler API

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();
查看更多
Viruses.
3楼-- · 2019-01-09 10:41

The JavaCompiler will be null if the code is running from a JRE. It needs a JDK, which includes the tools.jar.

查看更多
登录 后发表回答