我正在制作一个只应存在于系统托盘中的程序,并在网上看到将
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
?
new
命令实例化,这意味着它们可能在main
方法启动之前就已经被实例化了。 - Thomas Arnaud