我使用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 env变量下有%CYGWIN_HOME%/ bin。
使用ms.exe调用ProcessBuilder结束(没有任何异常)但作为输出我只得到
/cygdrive/c/my-path-to-ms.exe [msparams]
答案 0 :(得分:0)
使用ProcessBuilder("cmd.exe","/C","entire-exe-path-with-arguments")
运行可执行文件。
我有另一个可用作ProcessBuilder("exe-path","arg1","arg2"..)
的可执行文件。
我不确定为什么前一个版本只能在cmd下运行。
两者都是使用cygwin构建的。我已经尝试将cygwin1.dll放在工作目录中而没有任何影响。