2010-01-17 86 views
6

我想要为我的应用程序显示自定义的destop图标,但出于某种原因,无论我做什么,都会显示相同的默认java图标。我已经尝试了所有我能想到的事情,并将我的jnlp文件与其他图标似乎可以正常工作的人进行了比较。根据我读过的所有内容,应该可以正常工作。但当然,它不:使用JWS JNLP为JavaFX应用程序创建桌面图标

<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> 

任何想法将不胜感激。

回答

1

我没有具体的答案恐怕,但是Project MaiTai是一个用JavaFX编写的开源应用程序,它有一个自定义的桌面图标。

如果你还没有这样做,也许检查MaiTai的JNLP代码会给你一些指针。

1

有一个如何在JavaFX in Action书中这样做的例子,如果你有权访问它的话。您需要确保res/icon64x64.png文件实际上可以从应用程序所在的任何站点下载,相对于JNLP的位置。尝试直接在浏览器中加载它以确保其可用/有效。

5

我想尝试以下,依次是:

  1. 创建大小为32×32的图标并将其添加为一个额外的<icon kind="shortcut"...spec表示大小用于桌面图标。
  2. 使用您的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"/> 
    
  3. 请记住,您的图片在你jnlp XML元素相对于访问到您的codebase属性

  4. 如果没有这些工作,欢迎您进行比较你的JNLP为one of mine that works

我意识到这个JNLP的东西是一种痛苦。希望这些为你工作。

+0

谢谢埃里克。我尝试了你的建议,但目前为止没有喜悦。 我创建了快捷方式图标,尝试了gif,png和jpg格式,并使用了绝对和相对的uris。你有的看起来和我的一样。最糟糕的部分是知道解决方案不可避免地会变得非常简单。 JNLP的东西有点让人头疼,但我最终觉得它很酷。目前,我的偶像沮丧正在给我的JNLP兴奋蒙上一层阴影。我将在本周末再看一遍,看看我能否弄清楚。 – mikewilliamson 2010-01-21 01:17:12

+0

我做的另一件可能会有所作为的事情是为系统可以重新调整的默认值创建一个256x256 png。如果你发布你的整个JNLP,我可以看看你是否喜欢。 – 2010-01-21 17:17:50

+1

也许(默认)图标已被缓存,所以您可能需要刷新现金,才能看到新的自定义图标? (我不知道javaws如何处理图标,但它让我想起favicon/browser-cache的挫折......)。清除缓存:启动javaws(“Java Application Cache Viewer”),通过编辑|打开“Java控制面板”首选项,按“删除文件...”(在“常规”选项卡上)。 – netzwerg 2010-01-27 09:23:15

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> 
3

我们有同样的问题。它一开始工作良好,然后随着时间的推移(几个Java更新?)它停止工作。当我开始解决问题时,我发现即使javaws发送它是gzip能力,我们的gzip响应也没有处理。我为这些图标关闭了gzip,并且它再次正常工作。

相关问题