6

我正在尝试为我的应用程序显示一个自定义 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>

任何想法将不胜感激。

4

5 回答 5

5

我会按顺序尝试以下操作:

  1. 创建一个 32x32 大小的图标并将其添加为附加<icon kind="shortcut".... 规范说大小用于桌面图标。
  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. 请记住,您的图像是相对于您的xml 元素中的codebase属性进行访问的jnlp

  4. 如果这些都不起作用,欢迎您将您的 JNLP 与我的一个有效的JNLP 进行比较。

我意识到这个 JNLP 东西有点痛苦。希望其中一项对您有用。

于 2010-01-19T16:12:34.710 回答
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>
于 2010-11-10T10:16:43.500 回答
3

我们遇到了同样的问题。它最初运行良好,然后随着时间的推移(一些 Java 更新?)它停止工作。当我开始进行故障排除时,我发现即使 javaws 发送它支持 gzip,我们的 gzip 响应也没有得到处理。我为这些图标关闭了 gzip,它再次正常工作。

于 2012-11-21T18:41:46.353 回答
1

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

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

于 2010-01-17T21:42:38.860 回答
1

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

于 2010-01-19T15:31:35.230 回答