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



我有一个用Eclipse为Mac OS X构建的java应用程序。此应用程序是通过.pkg文件安装的,并且应该是守护程序化的。一切都很好,使用Macbooks(Pro,Retina(,但使用我工作的iMac时,当应用程序启动时,我在Dock上有一个图标,正如您在以下链接。

我已经尝试过这个主题中的解决方案:stackoverflow.com/a/620950/3641679,但它不起作用(我仍然有Dock图标(。当前Info.plist如下所示。

我能做什么?

谢谢你抽出时间来帮助我。

信息(假设应用程序名称为testapp(

  • 停止启动使用launchctl启动/停止的守护进程
  • 当我双击可执行文件(在testapp.app/Contents/MacOs/testapp中(时,我在Dock中有testapp.app(在Info.plist中指定图标文件(
  • 很抱歉有一些链接,我必须有10个信誉才能发布2个以上的链接

所以,我终于找到了解决方案!解决方案分为几个步骤。

步骤1:编辑Info.plist

我不得不添加LSBackgroundOnly键。它是字符串,必须设置为1

正如苹果文档中所说:

仅限LS背景

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

信息:

尽管文档指定该键是布尔值,但将其设置为字符串(其中值为1(即可。

为此:

  1. 转到应用程序的文件夹

  2. 进入.app的文件夹,然后进入内容文件夹(例如/Applications/test.app/Contents(

  3. 使用所需的任何文本编辑器(SublimeText、TextEdit、Xcode等(打开Info.plist

  4. 关闭dict标记(</dict>(之前添加以下行

<key>LSBackgroundOnly</key>

<string>1</string>

保存所有内容。

步骤2:编辑appname.ini

起初我只做了第一部分,所以这还不够。我找到了这个问题的答案。

该文件位于应用程序的.app(例如/Applications/testapp.app/Contents/MacOs/testapp.ini(内的">Contents/MacOs"文件夹中

  1. 打开.ini文件(使用所需的任何文本编辑器(。

  2. -vmargs行之前,添加以下行:-nosplash

  3. -vmargs行之后,添加以下两行:

    -Xdock:隐藏
    -Dapple.awt.UIElement=错误

保存文件,现在你可以启动应用程序:它不应该是Dock或"强制退出"窗口中的任何图标,但你的应用程序应该在后台运行。

希望这有帮助,

将其添加到您的信息列表中:-

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

请注意,此处的值设置为"true",而不是1

正如苹果文档所说:-

指定应用程序是否为代理应用程序,即不应出现在Dock或Force Quit窗口中的应用程序。有关详细信息,请参阅"LSUIElement"。

最新更新