我正在研究编译java文件的方法,我知道你可以使用javac Test.java
从命令行编译Java文件,但有没有办法将这个调用传递给命令行?
还有一种方法可以让命令行以相同的方式编译.tar文件......像javac -tar Test.tar
这样的东西(从java文件传递命令)..或者什么是最好的方法此?
抱歉,我不太擅长cmd命令
答案 0 :(得分:4)
Java提供interface来从程序中调用编译器。
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();
答案 1 :(得分:3)
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("javac Test.java");
答案 2 :(得分:3)
您可以使用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);
}
答案 3 :(得分:2)
我相信你问的是如何将编译命令从java文件传递到命令行来编译另一个java文件。这样就可以像执行命令行中的任何其他命令一样完成。在我看来,我使用流程构建器来处理所有事情,但是,这是何时使用.exec()
并将命令行编译命令作为字符串传递的一个很好的示例。
答案 4 :(得分:2)
试试这个......
Process p = Runtime.getRuntime().exec("javac Test.java");