以编程方式编译 .java 文件

Compile a .java File Programmatically

我想创建一个可以将 .java 文件编译为 .class 文件的程序,就像在这个网站上所做的那样: Innovation website

我的问题是:

   JavaCompiler javac = ToolProvider.getSystemJavaCompiler();

Java编译器的 javadoc 展示了如何使用此 JDK 工具进行工作和编译。其中的一个片段:

   File[] files1 = ... ; // input for first compilation task

   JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
   StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);

   Iterable<? extends JavaFileObject> compilationUnits1 =
       fileManager.getJavaFileObjectsFromFiles(Arrays.asList(files1));
   compiler.getTask(null, fileManager, null, null, null, compilationUnits1).call();

这绝非易事。但是,通过 shell 调用 Java 编译器的通用方法(包含所有修饰)也并不容易,因此,这也适用于通过 Process.

进行的调用。

使用ProcessBuilder 执行系统命令。

安装 JDK 并形成命令 "javac JavaFileName" 将此传递给 ProcessBuilder 构造函数并调用方法 start()

您可以使用 Process class 作为

Process pro=Runtime.getRuntime().exec("javac FileName.java", null, new File("\path"));