java - 当 java 作为服务运行时从 java 启动进程

标签 java c++ windows procrun

我有一个使用 prcorun ( http://commons.apache.org/proper/commons-daemon/ ) 作为 Windows 服务器运行的 java 进程;不幸的是,我必须启动一个用 C/C++ 编写的外部遗留命令。

两者

Process myProcess = Runtime.getRuntime().exec(command);

Process myProcess = new ProcessBuilder(command, arg).start();

当 java 作为独立应用程序启动时运行良好,但当我将 java 作为服务启动时它会回复

command not found

还有

Process myProcess = Runtime.getRuntime().exec("dir");

command not found

我认为是 Windows 服务的问题。

有什么建议吗?

最佳答案

我会尝试做一个快速测试并在您的服务中打印 PATH 环境变量。当您将某些命令作为服务运行时,我通常会发现,PATH 可能不完全可用(这也可以解释为什么 DIR 不适合您)。如果是这种情况,在启动服务时,您必须确保 PATH 包括普通 bin 和您的 legacy bin。

关于java - 当 java 作为服务运行时从 java 启动进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33638911/

相关文章:

java - Hibernate:找不到映射异常

c++ - 提取 PDF 的不同修订版

c++ - 我应该使用 boost::property_map 吗?

.net - 防止单个可执行文件的多个进程实例

windows - 寻找适用于 Windows 的选项卡式终端仿真器。有什么建议么?

java - 无法在 opengl 中加载图像

java - 在 Java 中从 preOrder 数组实现二叉搜索树重建?

java - AspectJ 与 SpringAOP 的 Aspect 不起作用

c++ - 函数的条件 typedef

java - 在 Java 中检测 CapsLock