在我的环境中,我们有很多可执行文件胶囊jar 文件,根据它们所连接的环境,以编程方式设置自定义图标和名称。这是通过在启动时调用 javax.swing.JFrame.setIconImage 和 setTitle 来完成的。我们有一个集中式仪表板,我们可以在其中下载可执行 jar 文件(几百个不同的 jar 文件),所以很明显,我希望能够下载一个并直接运行它。为此,互联网上到处都有指南,我想出了常规解决方案:
.本地/共享/应用程序/java-jar-launcher.desktop:
[Desktop Entry]
Type=Application
Name=Java Application Launcher
Icon=java
Exec=/usr/bin/java -jar %U
Categories=Application;Java
Terminal=False
.local/share/applications/mimeapps.list 包含:
application/x-java-archive=java-jar-launcher.desktop
但是,这不尊重应用程序设置的图标,只有灰色问号。更令人沮丧的是,所有应用程序和所有打开的窗口最终都位于停靠栏中的同一位置,彼此无法区分,都名为 Java Application Launcher。
如果我通过 java -jar 从终端启动下载的 jar,则图标及其以编程方式设置的名称都会在 dock 中可见,将不同的应用程序彼此分开。
我怎样才能让 jar 自动启动并保留图标和名称?我无法创建数百个桌面文件,因为这不是一组固定的应用程序。
运行 Ubuntu 15.10 / Java 1.8.0_66
答案1
为了去掉灰色问号,请添加以下代码行:
stage.getIcons().add(new Image(getClass().getResourceAsStream("/Images/orca.png")));