所有我正在通过我的应用程序编译和运行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)`
任何人都可以解决这个问题,我尝试了很多..
答案 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。