设置OS X属性apple.awt.UIElement没有效果。

4
我正在制作一个只应存在于系统托盘中的程序,并在网上看到将 apple.awt.UIElement 设置为 true 可以实现此目的。使用 JVM 参数运行我的程序的 jar 文件,可以达到预期效果,并且没有图标出现在 Dock 中。
java -jar -Dapple.awt.UIElement=true music.jar

但是当我尝试使用System.setProperty()从程序自身设置此属性时,它不起作用。该属性确实被设置为true(通过System.getProperty()检查),但Java图标仍然出现在Dock中。我使用的代码是:

System.setProperty("apple.awt.UIElement", "true");

我在考虑将整个程序变为无头模式,但是没有找到在无头模式下使用系统托盘而不需要AWT的方法。因此我想知道为什么从程序中设置属性没有效果,尽管该属性确实被设置为true


也许您设置了此属性太晚。您能否在设置此参数和实例化awt组件时进行设置? - Thomas Arnaud
我目前将其设置在程序开头,但我已经尝试了代码中几乎每个位置。 - platelminto
2
那么 AWT 组件呢?如果其中一些没有通过 new 命令实例化,这意味着它们可能在 main 方法启动之前就已经被实例化了。 - Thomas Arnaud
1
是的!我已经从两个我正在初始化的“Image”中删除了“static”属性,并在构造函数之前在主函数中调用了“setProperty ()”方法。如果您编写一个完整的答案,我会很高兴将其标记为正确的。 - platelminto
1个回答

0
System.setProperty("apple.awt.UIElement", "true");

在主函数的最开始对我来说很好用!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接