我想在 Windows 中不弹出任何窗口的情况下执行第 3 方程序(在我的例子中是 VLC)。我正在将我的 java 程序作为 Windows 服务运行,它工作正常,但是当我使用 Runtime.exec()
启动 VLC 时,无论我做什么,都会弹出一个窗口。 VLC 的命令行参数会阻止 GUI,但随后会弹出一个黑色控制台 - 也好不了多少。
所以:知道如何从 Java 启动外部程序以便不显示可见窗口吗? (它在 Mac OS X 中工作得很好,我认为 Linux 也一样)
我知道有一种方法可以将 libVLC
直接集成到您的 Java 程序中,但该选项对我不起作用。
最佳答案
可能有比这更好的解决方案,但这应该有效。
如果您安装了 Windows 脚本(Win98 和更新版本的标准),请将以下行保存为 .vbs
文件(例如,invisible.vbs
)。
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False
此脚本允许您使用以下命令以不可见的方式运行任何 .bat
文件:
wscript.exe "C:\Path\To\File\invisible.vbs" "C:\Path\To\Another\File\BatFile.bat"
这建立在 cheeken's 之上回答,因为它允许您隐藏 cmd 控制台。您所要做的就是创建一个包含 start vlc
的 .bat
文件。
注意:如果您使用此脚本执行 .bat
文件,它必须自行关闭并且不会抛出导致其挂起的错误。如果是这样,它将一直存在直到关机或直到您通过任务管理器将其关闭。
关于java - Windows:启动一个隐藏的新进程(无窗口),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8936451/