JNLP没有在Java 1.8客户端上创建桌面快捷方式

时间:2014-11-14 01:14:16

标签: java java-8 jnlp

我有一个JNLP,可以在Java 1.7下为我的应用程序创建一个桌面快捷方式。但是,当我在Java 1.8下运行它时,我不再获得桌面快捷方式。发生了什么变化?

这是我在Windows XP,Windows 7和OS X Yosemite下测试的一个示例,所有这些都运行Java 1.7并且它为这三个创建了桌面快捷方式,但是在运行Java 1.8的Windows 7和Windows 8上我都不知道获取桌面快捷方式。为了清楚起见,该应用程序显示并正常工作,只是没有创建桌面快捷方式。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jnlp PUBLIC "-//Sun Microsystems, Inc.//DTD JNLP 1.5//EN" "http://www.netbeans.org/jnlp/DTD/jnlp.dtd">
<jnlp codebase="http://services.SportsOptions.com/test/" href="test.jnlp">
  <information>
    <title>test</title>
    <vendor>test.com</vendor>
    <homepage href="http://www.test.com/"/>
    <description>Test</description>
    <icon href="splash.png" kind="splash"/>
    <offline-allowed/>
    <shortcut online="true">
      <desktop/>
      <menu submenu="test" />
    </shortcut>
  </information>
  <information os="Linux">
    <icon href="DesktopIcon.ico" kind="shortcut" />
  </information>
  <information os="Windows">
    <icon href="DesktopIcon.ico" kind="shortcut" />
  </information>
  <information os="Mac">
    <icon href="DesktopIcon.icns" kind="shortcut" />
  </information>
  <resources locale="" os="">
    <j2se href="http://java.sun.com/products/autodl/j2se" initial-heap-size="32m" max-heap-size="512m" version="1.6+"/>
    <jar download="eager" href="Test.jar" main="false" version=""/>
  </resources>
  <application-desc main-class="test.Main"/>
</jnlp>

1 个答案:

答案 0 :(得分:1)

OP的解决方案:

在Java 1.7中,为所有常见信息读取了没有 os 属性的<information>标记,并且还读取了包含{{1}的<information os="...">标记每个操作系统的标记。在Java 1.8中,一旦看到<icon>标签而没有 os 属性,它就不会读取 os 属性,这是我有桌面快捷方式图标的地方。因此,我必须创建三个单独的<information>标记,每个操作系统一个,但每个操作系统中都会复制所有常见信息。