Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 防止后台进程显示在Dock上_Java_Macos - Fatal编程技术网

Java 防止后台进程显示在Dock上

Java 防止后台进程显示在Dock上,java,macos,Java,Macos,我有一个Java应用程序。对于某些任务,我使用ProcessBuilder并行运行另一个JVM实例。i、 e.我的主应用程序使用进程启动另一个JVM实例,然后两者都使用i/O进行通信 但在Mac上的Dock上,它显示了以下两个过程: 我不希望这样,因为另一个流程只做后端工作,不需要提前显示。此外,这也是一个风险,因为他可以手动强制退出另一个进程很容易 应该做些什么来确保它在后台运行,并且不会在dock上显示自己如果您的后端处理器确实不需要任何屏幕资源,那么最简单的方法就是在无头模式下启动新的J

我有一个Java应用程序。对于某些任务,我使用
ProcessBuilder
并行运行另一个JVM实例。i、 e.我的主应用程序使用
进程启动另一个JVM实例,然后两者都使用i/O进行通信

但在Mac上的
Dock
上,它显示了以下两个过程:

我不希望这样,因为另一个流程只做后端工作,不需要提前显示。此外,这也是一个风险,因为他可以手动强制退出另一个进程很容易


应该做些什么来确保它在后台运行,并且不会在dock上显示自己

如果您的后端处理器确实不需要任何屏幕资源,那么最简单的方法就是在无头模式下启动新的JVM:


要全局启用它,而不是向每个进程添加选项,请在.bashrc/.zshrc启动脚本中设置JAVA_TOOL_OPTIONS变量,如下所示

导出JAVA_工具_选项='-Djava.awt.headless=true'

此处参考:

java -Djava.awt.headless=true com.bl.ProcessMain