【问题标题】:How to hide the Java SWT program icon in the Dock when the application is in the tray当应用程序在托盘中时如何在 Dock 中隐藏 Java SWT 程序图标
【发布时间】:2012-01-05 00:21:54
【问题描述】:

我知道有很多与我类似的问题,但即使在阅读完所有问题后,我实际上也无法解决我的问题。 我有一个 Java 应用程序,一旦启动它就会进入托盘。问题出在 Mac 上,因为只有图标在托盘栏和 Dock 中。 我想去掉 Dock 图标。

我已经做了一些试验: 尝试将我的 jar 包装在“.app”文件夹中并编写 Info.plist 文件。我插入了 LSUIElement 并将其设置为“1”或“true”。这隐藏了应用程序图标,但显示了一个丑陋的灰色图标终端,就像终端一样。

即使您有任何想法或其他方法可以绕过它,也请告诉我。 谢谢。

【问题讨论】:

  • 您是使用java 还是javaw 启动您的应用程序?
  • 这是什么版本的 SWT?这是 SWT 3.5 中的一个问题,但在 3.6 中已修复。如果它是 3.6 或更高版本,这听起来像是回归。

标签: java macos swt dock trayicon


【解决方案1】:

您可能使用了错误的属性名称来满足您的需求。看看这里:

https://developer.apple.com/library/mac/#documentation/Java/Reference/Java_PropertiesRef/Articles/JavaSystemProperties.html

我想你要设置的属性是:

“apple.awt.UIElement”(不是“LSUIElement”)

有两种方法可以做到这一点。你可以通过:

-Dapple.awt.UIElement="true"

作为 VM 参数,或者您可以将 Info.plist 中的属性设置为:

<key>Properties</key>
  <dict>
    <key>apple.awt.UIElement</key>
    <string>true</string>
  </dict>

【讨论】:

  • 问题是关于 SWT,而不是 AWT。
  • @EdwardThomson 你试过了吗?所有 Apple Java System 运行时属性都以“apple.awt”或“apple.laf”开头,并且操作系统应该尊重 VM args。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 2016-02-13
  • 1970-01-01
相关资源
最近更新 更多