JNLP - 如何部署运行的应用程序并创建用于启动a.jar的桌面图标?

时间:2012-03-02 10:31:29

标签: java installer jnlp java-web-start package-managers

我该如何解决此错误?我的部署dist包含我的网络服务器中包含的所有jar文件。但是,一旦我按下icon.jnlp就会说错误。

icon.jnlp:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp codebase="http://localhost:007/dist" href="icon.jnlp" spec="1.0+">
  <information>
    <title>Sample</title>
    <vendor>Sample</vendor>
    <homepage href=""/>
    <description>Sample</description>
    <description kind="short">Sample</description>

    <icon href="load.png" kind="splash"/>
    <icon href="logo.png" kind="default"/>

    <shortcut online="false">
      <desktop/>
        <menu submenu="Sample">
          <menu submenu="Sample Managing System"/>
        </menu>
    </shortcut>
    <offline-allowed/>
  </information>

  <security>
    <all-permissions/>
  </security>

  <resources>
    <j2se version="1.5+"/>
    <jar eager="true" href="http://localhost:007/dist/a.jar" main="true"/>
  </resources>

  <application-desc main-class="main.main">
  </application-desc>

</jnlp>

enter image description here

跟进:

1)下载JAR Maker(适用于Linux,Windows)

enter image description here

  • 所有第三方广告
  • 您的部署jar

  • 输出目录:/ var / tmp / project / dist

  • 转到JAR Signer标签

    • 输入jar文件:a.jar
      • jarsigner位置:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/bin/jarsigner
      • 密钥库文件
      • 如果没有创建密钥&gt;单击生成密钥库                        - keytool位置:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/bin/keytool                        - 输出密钥库文件:/ var / tmp / keystore                        - keystore别名:rememberthisname                        - 公钥:123456                        - 私钥:123456                        - 有效期:0表示6个月                        - 密钥库标识                          - 有效信息......                        - 按生成密钥库                          - 它将创建/ var / tmp / keystore和java.key.public以及java.key
    • 密钥库身份验证

      • keystore别名:rememberthisname
      • 公钥:123456
      • 私钥:123456
    • 点击签名JAR! &GT;将告知失败或成功

对所有其他JAR文件重复此过程以进行签名!!

2)部署到着陆空间

3)确保您引用了所有第三方

在:

  <resources>
    <j2se version="1.5+"/>
    <jar eager="true" href="http://localhost:007/dist/a.jar" main="true"/>
  </resources>

后:

  <resources>
    <j2se version="1.5+"/>
    <jar eager="true" href="a.jar" main="true"/>
    <jar eager="true" href="lib/b.jar" main="flas"/>
    <jar eager="true" href="lib/c.jar" main="flas"/>
    <jar eager="true" href="lib/d.jar" main="flas"/>
    <jar eager="true" href="lib/e.jar" main="flas"/>
    <jar eager="true" href="lib/f.jar" main="flas"/>
    <jar eager="true" href="lib/g.jar" main="flas"/>
    <jar eager="true" href="lib/h.jar" main="flas"/>
    <jar eager="true" href="lib/i.jar" main="flas"/>
  </resources>

1 个答案:

答案 0 :(得分:2)

请务必使用JaNeLA检查JNLP。

  

我现在还必须签署所有其他第三方罐子吗?

这取决于它们的部署方式。如果它们是扩展名,则扩展名可以具有不同的安全级别。如果安全级别是沙盒,则无需签署Jars。

但是你可能会面临'混合签名&amp; amp;未签名的资源警告。我不确定它是否适用于扩展之间。有这些警告的方法,但我认为部署所有签名的Jars更简单,无论它们使用的扩展程序的安全级别如何。