如何使用其他程序编译Java程序?

时间:2012-10-02 07:28:10

标签: java process javac

所有我正在通过我的应用程序编译和运行java源代码的项目。 这里被困住将在这里解释我的环境.. java 1.6.0_35 32biteclipse indigo使用操作系统windows 64 bit
当我使用这段代码时

String command = "javac "+file.getAbsolutePath();
System.out.println(command);
Process p = Runtime.getRuntime().exec(command);`

得到了这个异常..思考错误显示文件不存在,但我检查了它,这是在这里 当我通过命令行执行编译时,但是eclipse显示了这个错误

java.io.IOException: Cannot run program "javac": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)`

任何人都可以解决这个问题,我尝试了很多..

3 个答案:

答案 0 :(得分:3)

您无需使用命令行,您可以通过编程方式访问javac

JavaCompiler javac = ToolProvider.getSystemJavaCompiler();
javac.run(null, null, null, arguments);

它是可移植的(适用于其他系统),可避免路径和命令行出现问题。

答案 1 :(得分:2)

您可以使用Java 6 Compiler API this link也许有用..

答案 2 :(得分:1)

您的问题似乎并不是找不到要编译的文件,而是找不到javac命令本身。确保运行时可以找到javac可执行文件,最后将“PATH = / path / to / java / dir”传递给exec。

请参阅:Runtime.exec(command, enviroment, dir)