0

我已经使用 cygwin 构建了一个 .exe。它被称为 ms.exe。我正在尝试使用 ProcessBuilder 从 java 运行它。我之前使用过 ProcessBuilder 来捕获它的输出。

在命令窗口 (cmd.exe) 上,如果我运行 ms.exe [ms-params] > output.txt。然后输出包含

/cygdrive/c/my-path-to-ms.exe [msparams]

[程序输出]

在命令窗口中,如果我没有传递任何重定向,即 > output.txt,那么输出仅包含 [程序输出]。

请注意,我的 PATH 环境变量下有 %CYGWIN_HOME%/bin。

用 ms.exe 调用 ProcessBuilder 结束(没有任何异常)但作为输出我只得到

/cygdrive/c/my-path-to-ms.exe [msparams]

4

1 回答 1

0

使用ProcessBuilder("cmd.exe","/C","entire-exe-path-with-arguments")运行可执行文件。

我有另一个可执行文件,当用作ProcessBuilder("exe-path","arg1","arg2"..).

我不确定为什么以前的可执行文件只能在 cmd 下运行。

两者都是使用 cygwin 构建的。我尝试将 cygwin1.dll 放在工作目录中,但没有任何效果。

于 2013-03-27T02:07:38.650 回答