本文介绍了将 Runtime#exec() 与 javac 一起使用 - 无类文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
以下 MyCompilingUtility.java
通过 PrintWriter
创建一个文件(Java 类 - AutoGenerated.java
).这个类只有一个带有打印语句的 Main 方法.其次,这个程序调用javac AutoGenerated.java
.
The following MyCompilingUtility.java
creates a file (a Java class - AutoGenerated.java
) via a PrintWriter
. This class only has a Main method with a print statement. Secondly, this program calls javac AutoGenerated.java
.
public static void main(String args[]) throws IOException,
FileNotFoundException, UnsupportedEncodingException {
createFile("AutoGenerated.java");
compile("AutoGenerated.java");
}
public static void compile(String fileName) throws IOException {
final String javacPath = "C:/Program Files/Java/jdk1.7.0_51/bin/javac.exe";
Runtime rt = Runtime.getRuntime();
final String compileCmd = javacPath + " " + fileName;
rt.exec(compileCmd);
}
public static void createFile(String fileName) throws FileNotFoundException,
UnsupportedEncodingException {
PrintWriter writer = new PrintWriter(fileName, "UTF-8");
writer.println("public class AutoGenerated");
writer.println("{");
writer.println(" public static void main(String [] args)");
writer.println(" {");
writer.println(" System.out.println(\"Hello from AutoGenerated World\")");
writer.println(" }");
writer.println("}");
writer.close();
}
但是,在运行 javac MyCompilingUtility.java && 之后java MyCompilingUtility
,没有生成 AutoGenerated.class
文件.
However, after running javac MyCompilingUtility.java && java MyCompilingUtility
, there's no AutoGenerated.class
file produced.
这是为什么?
推荐答案
你缺少一个 ;
在
writer.println(" System.out.println(\"Hello from AutoGenerated World\");");
^
编译器根本无法编译它.
The compiler simply fails to compile it.
这篇关于将 Runtime#exec() 与 javac 一起使用 - 无类文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!