如何删除shell可执行文件的dock图标?

t30tvxxf  于 2023-08-07  发布在  Shell
关注(0)|答案(2)|浏览(124)

我有一个用Eclipse为MacOSX构建的Java应用程序。此应用程序通过**.pkg文件安装,并且应该是守护程序**。一切正常,Macbooks**(Pro,Retina),但对于我使用的iMac**,当应用程序启动时,我在Dock上有一个图标,正如您在following link上看到的那样。
我已经在这个主题中尝试了解决方案:stackoverflow.com/a/620950/3641679,但它没有工作(我仍然有码头图标)。目前Info.plist看起来像this
我该怎么办?
谢谢你花时间来帮助我。

信息(假设app名称为testapp)

  • 我使用launchctl start/stop停止启动**守护程序
  • 当我双击可执行文件(在testapp.app*testapp中)时,我在Dock中有testapp.app(带有Info.plist中指定的图标文件)。截图如下res.cloudinary. com/doit0eqlo/image/upload/v1400750376/app_k3adzh.png**
  • 对不起的一些链接,我必须有10个信誉后2个以上的链接。
lpwwtiir

lpwwtiir1#

我终于找到了解决办法!解决方案分为几个步骤。

第一步:编辑Info.plist

我必须添加LSBackgroundOnly键。是字符串,必须设置为1
正如Apple文档中所述:

LSBackgroundOnly

指定此应用程序是否仅在后台运行。如果此键存在并设置为“1”,则Launch Services仅在后台运行应用。

说明:

尽管文档中指定了这个键是一个boolean,但将它设置为一个string,其中的值为1
要执行此操作,请执行以下操作:
1.转到应用程序的文件夹
1.进入**.app的文件夹,然后进入Contents文件夹(例如/Applications/test.app/Contents)
1.使用您想要的任何文本编辑器(SublimeText、TextEdit、Xcode等)打开
Info.plist**
1.在关闭dict标记(</dict>)前添加以下行
<key>LSBackgroundOnly</key>
<string>1</string>
保存一切。

第二步:编辑appname.ini

最初我只做了第一部分,所以这还不够。我在this question中找到了解决方案。
该文件位于应用程序的**.app中的“Contents/MacOs”文件夹中(例如/Applications/testapp.app/Contents/MacOs/testapp.ini)。
1.打开
.ini**文件(使用您想要的任何文本编辑器)。
1.在-vmargs行之前,添加以下行:-nosplash
1.在-vmargs行之后,添加以下两行:
-Xdock:隐藏
-Dapple.awt.UIElement=false
保存文件,现在您可以启动应用程序:它不应该是任何图标,无论是在Dock还是在“强制退出”窗口中,但您的应用程序应该在后台运行。
希望这能帮上忙

am46iovg

am46iovg2#

将此添加到您的info.plist:-

<key>LSUIElement</key>
<true/>

字符串
注意这里的值被设置为'true'而不是1
Apple docs状态:-
指定应用程序是否为代理应用程序,即不应显示在“停靠”或“强制退出”窗口中的应用程序。有关详细信息,请参见“LSUIElement”。

相关问题