0

所有人都在通过我的应用程序编译和运行 java 源代码的项目。在这里卡住将在这里解释我的环境.. java 1.6.0_35 32bit并 在我使用此代码时eclipse 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)`

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

4

3 回答 3

3

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

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

它是可移植的(在其他系统上工作)并且可以避免路径和命令行的问题。

于 2012-10-02T07:32:51.680 回答
2

您可以使用Java 6 编译器 API这个链接也可能有用..

于 2012-10-02T07:35:39.523 回答
1

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

请参阅:Runtime.exec(命令、环境、目录)

于 2012-10-02T07:36:16.033 回答