我想执行第三方程序(在我的情况下是VLC),而Windows中没有任何窗口弹出。我正在运行我的java程序作为Windows服务工作正常,但是当我使用Runtime.exec()
启动VLC时,无论我做什么,都会弹出一个窗口。 VLC的命令行参数会阻止GUI,但会弹出黑色控制台 - 不会太好。
所以:任何想法如何从Java启动外部程序,以便不显示可见窗口? (它在Mac OS X中工作正常,我认为Linux将是相同的)
我知道有一种方法可以将libVLC
直接集成到您的Java程序中,但该选项对我不起作用。
答案 0 :(得分:1)
可能有一个比这个更好的解决方案,但应该工作。
如果您安装了Windows Scripting(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控制台。您所要做的就是创建一个.bat
文件,其中包含start vlc
。
注意:如果使用此脚本执行.bat
文件,则必须关闭自身,并且不能抛出导致其挂起的错误。如果是这样,它会一直存在,直到关闭或直到你通过任务管理器关闭它。
答案 1 :(得分:0)
不要直接在控制台命令中调用VLC二进制文件,而是尝试针对该命令调用start
(即start c:\vlc.exe
)。
请注意,此调用将立即或多或少地返回(因此,如果您的应用程序依赖于返回的调用以确定何时终止VLC,则必须采用其他方式)。