以下 MyCompilingUtility.java
通过 PrintWriter
创建一个文件(Java 类 - AutoGenerate.java
)。该类只有一个带有 print 语句的 Main 方法。其次,该程序调用javac AutoGenerate.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
后,没有生成AutoGenerate.class
文件。
这是为什么?
最佳答案
您在
末尾缺少;
writer.println(" System.out.println(\"Hello from AutoGenerated World\");");
^
编译器根本无法编译它。
关于java - 将 Runtime#exec() 与 javac 一起使用 - 无类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21580975/