使用带有javac的Runtime#exec() - 没有类文件

时间:2014-02-05 15:11:56

标签: java runtime

以下MyCompilingUtility.java通过AutoGenerated.java创建文件(Java类 - PrintWriter)。该类只有一个带有print语句的Main方法。其次,该程序调用{​​{1}}。

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个文件。

为什么?

1 个答案:

答案 0 :(得分:1)

你在

结尾处遗漏了;
writer.println("    System.out.println(\"Hello from AutoGenerated World\");");
                                                                          ^

编译器无法编译它。