0

我正在尝试在用 Java 编写的测试框架中启动一个进程,但该进程的行为有所不同。“登录”按钮冻结。可以通过关闭启动该过程的测试框架来解决该问题

当进程由用户启动时,没有问题。(通过 explorer、visual studio、cmdline && DURING runtime of testing framework)

ProcessBuilder pb = new ProcessBuilder(commands);
pb.directory(workingDirectory);

process = runtime.exec(commands, null, workingDirectory);

未能提供适当的结果。该进程的行为仍然不同于通过双击应用程序图标创建的进程。该应用程序是用本机 C++ 编写的

我如何启动一个进程 - 完全 - 就像 Windows7 会做的那样?

4

2 回答 2

0

我认为您的问题可能是您的 .exec 命令中的空值。那就是您要传递的环境变量。

查看 java.lang.Runtime 类的 javadocs:

envp - 字符串数组,其中每个元素的环境变量设置格式为 name=value,如果子进程应继承当前进程的环境,则为 null。

也许您在运行 java 程序时缺少环境变量或其他东西。

于 2012-05-22T02:21:56.490 回答
0

确保阅读流程流以解决阻塞问题。

于 2012-06-01T14:44:54.890 回答