java - Windows:启动一个隐藏的新进程(无窗口)

标签 java windows exec hide vlc

我想在 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/

相关文章:

java - 如何将 Vector3F 舍入为整数 vector ?

java - 仅当自上次构建以来文件发生更改时才执行 Maven 插件

c# - Windows 窗体屏幕保护程序预览窗口句柄

Java用(管道) "... -f nut - | ffmpeg -i - ..."执行ffmpeg命令只是挂起

java - Java 中的括号

java - JFormattedTextField 中的严格 24 小时制

c - 在 OpenGL 窗口中绘制 2D 叠加层(文本 + 图标)

c# - Windows 10 (1607)/Windows Server 2016 上的 ASP.NET Core ILogger 内存泄漏

php - 在 CentOS7 上从 PHP 写入文件(通过执行 git 命令)

C: Exec/fork > 失效进程