将 Runtime#exec() 与 javac 一起使用 - 无类文件 [英] Using Runtime#exec() with javac - No Class File

查看:42
本文介绍了将 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 一起使用 - 无类文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆