[英]Using Runtime#exec() with javac - No Class File
下面MyCompilingUtility.java
創建一個文件(一個Java類- AutoGenerated.java
)通過PrintWriter
。 此類僅具有帶有打印語句的Main方法。 其次,該程序調用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
文件。
這是為什么?
你錯過了;
在......的最后
writer.println(" System.out.println(\"Hello from AutoGenerated World\");");
^
編譯器根本無法編譯它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.