将JNLP打包为应用程序的选项在甲骨文的JDK7JavaPreferences页面中似乎不存在,正如声明的这里在苹果中所做的那样
OS桌面与Java的集成允许用户从任何Java应用程序创建本地应用程序包。中的快捷创建设置控制用户在打开Java应用程序时是否被提示创建应用程序包。捆绑Java应用程序具有本机应用程序包的所有优点,这些优点在“”中进行了描述。
为了解决这个问题,我使用Automator创建一个.app,它运行一个执行JNLP的shell脚本。这允许我使用一个应用程序图标,但我所有配置码头图标的尝试都失败了。
我尝试使用.icns创建一个iconutil文件,并将其添加到Resources文件夹中,然后在字段"Icon File"下指定Contents/Info.plist中的.icns文件,但在运行应用程序时,仍然会在码头上获得java咖啡杯图标。
我尝试过的另一件事是将-Xdock:icon=icon.jpg参数传递给javaws,但这似乎只适用于常规java程序。
发布于 2012-10-22 19:38:17
我找到了解决问题的办法。您可以在jnlp中直接引用图标,而不是将图标捆绑在.app文件中。JNLP开发人员指南包含对icon element的描述。
图标元素:包含指向GIF或JPEG格式图像文件的HTTP。这些图标用于表示应用程序。 在启动期间,Java将应用程序呈现给用户;在application中;在桌面快捷方式中。下载过程中显示了一个64x64图标;在Application和桌面快捷方式中使用了32x32图标。Java将图标自动调整到适当大小。
它没有明确提到OSX码头,但一个快速测试显示,它确实把图标也放在那里。
发布于 2013-10-04 03:12:51
我推荐一种不同的方法,它也将帮助您使用其他部署方法(不仅仅是jnlp)。
可以在代码中使用反射来添加OSX特定的代码。我在windows上编译了我的应用程序,并为mac添加了停靠图标。
javax.swing.ImageIcon icon = ...
Class c = Class.forName("com.apple.eawt.Application");
Method m = c.getMethod("getApplication");
Object applicationInstance = m.invoke(null);
m = applicationInstance.getClass().getMethod("setDockIconImage", javax.swing.ImageIcon.class);
m.invoke(applicationInstance,icon);https://stackoverflow.com/questions/13013337
复制相似问题