以编程方式更改应用程序Dock图标javaFX

Sop*_*oox 3 macos javafx

我有一个只能从JAR加载的javaFX应用程序,但我想更改mac dock中的图标.我已经成功地在Windows上工作了.我正在使用Netbeans IDE,并且宁愿不添加额外的Apple JAR Extension文件.正因为如此,我不确定它是否可能.

Dar*_*ust 9

到目前为止,我还没有看到使用JavaFX执行此操作的方法,但有一种方法可以使用Apple特定的Java API:

public static void main(String[] args) {
    try {
        URL iconURL = Main.class.getResource("ui/resources/Logo@2x.png");
        Image image = new ImageIcon(iconURL).getImage();
        com.apple.eawt.Application.getApplication().setDockIconImage(image);
    } catch (Exception e) {
        // Won't work on Windows or Linux.
    }

    launch(args);
}
Run Code Online (Sandbox Code Playgroud)

这至少适用于Oracle Java 1.7.0_40和1.8.0_25.

缺点是,当您启动JAR时,您将在停靠栏中看到Java徽标一小段时间,然后更改为您的图标.这是一个技术限制,只能通过创建真正的本机OS X捆绑包来解决.

  • 事实上,我想我找到了更好的方法。有一个公共 API,这个 java.awt.Taskbar#setIconImage - 请参阅 https://diarium.usal.es/pmgallardo/2020/01/05/how-to-set-dock-icon-of-java-应用/ (2认同)