我有一个用Eclipse构建的Java应用程序,适用于Mac OS X. 此应用程序通过 .pkg 文件安装,并且应该是守护程序。一切正常,Macbook (Pro,Retina),但我使用的是 iMac ,当应用程序启动时,我在 Dock <上有一个图标/ strong>,正如你所看到的那样 following link。
我已经尝试过这个主题的解决方案: stackoverflow.com/a/620950/3641679 但它没有工作(我仍然有Dock图标)。目前, Info.plist 看起来像this。
我该怎么办?
感谢您抽出时间帮助我。
答案 0 :(得分:2)
将此添加到您的info.plist: -
<key>LSUIElement</key>
<true/>
请注意,此处的值设置为“true”而不是1
作为Apple docs州: -
指定应用程序是否为代理应用程序,即不应出现在Dock或Force Quit窗口中的应用程序。有关详细信息,请参阅“LSUIElement”。
答案 1 :(得分:2)
所以,我终于找到了解决方案!解决方案分为几个步骤。
我必须添加 LSBackgroundOnly 键。它是字符串,必须设置为 1 。
如Apple Documentation中所述:
LSBackgroundOnly
指定此应用程序是否仅在后台运行。如果此密钥存在且设置为“1”,则启动服务仅在后台运行应用程序。
虽然文档指定此密钥是布尔,但将其设置为字符串,其中值 1 就可以了。< / p>
这样做:
转到您应用的文件夹
进入 .app 的文件夹,然后进入内容一个(例如/Applications/test.app/Contents)
使用您想要的任何文本编辑器打开 Info.plist (SublimeText,TextEdit,Xcode等)
在结束 dict标记(</dict>
)之前添加以下行
<key>LSBackgroundOnly</key>
<string>1</string>
保存所有内容。
最初我只做了第1部分,所以还不够。我在this question找到了解决方案。
该文件位于应用程序 .app 内的“目录/ MacOs ”文件夹中(例如/Applications/testapp.app/Contents/MacOs/testapp.ini)
打开 .ini 文件(使用您想要的任何文本编辑器)。
在-vmargs
行之前,添加以下行:-nosplash
在-vmargs
行之后,添加以下两行:
-Xdock:隐藏
-Dapple.awt.UIElement =假
保存文件,现在您可以启动应用程序:它既不应该在Dock中也不应该在“强制退出”窗口中,而应该在后台运行。
希望这有帮助,