繁体   English   中英

如何在后台运行Java代码中的命令行?

[英]How do I run command line from Java code in the background?

我有以下行来运行批处理文件,

Process process = Runtime.getRuntime().exec("cmd /c start rake.bat");

但我希望它在后台运行,而不是向用户显示命令行。 如何更改它才能执行此操作?

问题是命令窗口打开并导入程序GUI。 我只是希望命令窗口在执行批处理文件时不可见。

完全删除'start'将完成您想要的操作(因为这是创建窗口的原因):

Process process = Runtime.getRuntime().exec("cmd /c rake.bat");

我已经测试了这个并且它可以工作,当然如果你想要与命令提示符进行通信你必须有输入和输出流,也不要忘记你的错误流正如评论中所述尽管在XP上删除'start'不会有帮助(因为它不会工作)。

我不太清楚'在后台'你的意思

如果您只是意味着窗口不可见,那么这个SO答案可能会有用。

如果(但是)你的意思是你希望你的Java程序在执行时继续运行,那么你应该在一个单独的线程中产生它。

无论上述情况如何,请小心捕获批处理文件的sdtout / stderr

Process process = Runtime.getRuntime().exec("cmd /c start rake.bat");

如果从java进程调用上面的行来执行批处理文件。 默认情况下,这将在后台运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM