3

我正在使用以下 2 行创建一个流程

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)
4

1 回答 1

1

您可以从命令行手动运行该程序。您可以使用完整路径规范从父进程中运行程序。我想说我们可以假设程序运行正常。

还有什么不同?父进程运行的环境可能是什么?我会在启动进程之前检查 PATH。您正在使用 Java。太多的 Java程序使用批处理文件来启动 JVM 进程。此批处理文件可能与 PATH 变量混在一起。

如果这是您的程序并且不涉及批处理文件,我会在您运行父程序时检查当前工作目录。它也可能影响在运行时找到的内容。

于 2011-08-19T14:35:38.920 回答