我正在尝试为我的应用程序显示自定义destop图标,但由于某些原因,无论我做什么,都会显示相同的默认java图标。我已经尝试了所有我能想到的东西,并将我的jnlp文件与其图标似乎正常工作的其他人进行了比较。根据我读过的所有内容,以下内容应该可以正常工作。但当然,它不会:
<information>
<title>MikesApp</title>
<vendor>Mike</vendor>
<homepage href="http://www.mikesapp.com/"/>
<description>Mikes App.</description>
<icon kind="shortcut" href="res/icon64x64.png" width="64" height="64"/>
<offline-allowed/>
<shortcut>
<desktop/>
</shortcut>
</information>
非常感谢任何想法。
答案 0 :(得分:5)
我会按顺序尝试以下操作:
<icon kind="shortcut"...
。 spec表示该大小用于桌面图标。 使用64x64图标作为“默认”。例如,您的新<icon>
元素将是:
<icon href="res/icon64x64.png" width="64" height="64"/>
<icon kind="shortcut" href="res/icon32x32.png" width="32" height="32"/>
<icon kind="shortcut" href="res/icon64x64.png" width="64" height="64"/>
请记住,您的图片是相对于codebase
xml元素
jnlp
属性进行访问的
如果这些都不起作用,欢迎您将您的JNLP与one of mine that works进行比较。
我意识到这个JNLP的东西是一种痛苦。希望其中一个为你工作。
答案 1 :(得分:3)
我认为你的案例中的问题是缺少CODEBASE属性。请参阅一个工作片段:
<?xml version="1.0"?>
<jnlp spec="1.5+"
codebase="http://www.sweethome3d.com/"
href="SweetHome3D.jnlp">
<information>
<title>Sweet Home 3D</title>
<vendor>eTeks</vendor>
<homepage href="http://www.sweethome3d.com/"/>
<description>Sweet Home 3D</description>
<description kind="short">Arrange the furniture of your house</description>
<icon href="SweetHome3DIcon.gif"/>
<icon kind="splash" href="SweetHome3DSplashScreen.jpg"/>
<offline-allowed/>
<shortcut online="false">
<desktop/>
<menu submenu="eTeks Sweet Home 3D"/>
</shortcut>
<association extensions="sh3d sh3l sh3f sh3t sh3p"
mime-type="application/SweetHome3D"/>
</information>
答案 2 :(得分:3)
我们遇到了同样的问题。它最初工作得很好然后随着时间的推移(一些Java更新?)它停止工作。当我开始排除故障时,我发现即使javaws发送它是gzip能力的,我们的gzip响应也没有得到处理。我为这些图标关闭了gzip,它再次运行良好。
答案 3 :(得分:1)
我恐怕没有具体的答案,但Project MaiTai是一个用JavaFX编写的开源应用程序,它有一个自定义桌面图标。
如果你还没有这样做,也许查看MaiTai的JNLP代码会给你一些指示。
答案 4 :(得分:1)
如果您有权访问,可以在JavaFX in Action手册中找到如何执行此操作的示例。您需要确保res / icon64x64.png文件实际上可以从托管应用程序的任何站点下载,相对于JNLP的位置。尝试直接在浏览器中加载它以确保其可用/有效。