我正在寻找编译 java 文件的方法,我知道您可以使用命令行从命令行编译 Java 文件javac Test.java
,但是有没有办法将此调用传递给命令行?
还有一种方法可以让命令行以相同的方式编译 .tar 文件……比如javac -tar Test.tar
(从 java 文件传递命令)……或者最好的方法是什么?
抱歉,我不太擅长 cmd 命令
我正在寻找编译 java 文件的方法,我知道您可以使用命令行从命令行编译 Java 文件javac Test.java
,但是有没有办法将此调用传递给命令行?
还有一种方法可以让命令行以相同的方式编译 .tar 文件……比如javac -tar Test.tar
(从 java 文件传递命令)……或者最好的方法是什么?
抱歉,我不太擅长 cmd 命令
Java 提供了一个接口来从程序中调用编译器。
JavaCompiler compiler = ToolProvider
.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler
.getStandardFileManager(null, null, null);
Iterable<? extends JavaFileObject> compilationUnits = fileManager
.getJavaFileObjectsFromStrings(Arrays.asList("MyClass.java"));
compiler.getTask(null, fileManager, null, null, null, compilationUnits).call();
fileManager.close();
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("javac Test.java");
您可以使用 Runtime 类从 Java 运行系统命令,例如
Process p = Runtime.getRuntime().exec("javac Test.java");
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while((line = reader.readLine()) != null) {
System.out.println(line);
}
尝试这个....
Process p = Runtime.getRuntime().exec("javac Test.java");
我相信您在问如何将编译命令从 java 文件传递到命令行以编译另一个 java 文件。这将像您对命令行执行任何其他命令一样完成。在我看来,我对所有事情都使用进程构建器,但是,这是一个很好的例子,说明何时使用.exec()
和传递你的命令行编译命令作为字符串。