我正在使用以下两行创建一个流程
Runtime rt = Runtime.getRuntime();
Process p = rt.exec(COMMAND);
其中 COMMAND = "program.exe"
。 program.exe
在系统的 PATH 变量上。
现在的问题是这仅在 Windows 2K8 R2 中不起作用。它适用于所有其他风格的 Windows(winXP、win2003)
报告的错误是:
java.io.IOException: Cannot run program "program.exe": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
最佳答案
您可以从命令行手动运行该程序。您可以使用完整路径规范从父进程中运行该程序。我会说我们可以假设程序正常运行。
还有什么不同?父进程运行的环境可能是?我会在启动该过程之前检查 PATH。您正在使用 Java。太多 Java 程序 使用批处理文件来启动 JVM 进程。此批处理文件可能与 PATH 变量混淆。
如果这是您的程序并且不涉及批处理文件,我会在您运行父程序时检查当前工作目录。它也可能影响在运行时找到的内容。
关于Java Runtime.exec(COMMAND) 在 win2K8 R2 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6987707/