2012-03-02 43 views
0

我该如何解决这个错误?我有我的网络服务器中包含的所有jar文件的部署dist。但是,一旦我按了icon.jnlp它说错误。JNLP - 我如何部署我的运行应用程序并创建启动a.jar的桌面图标?

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

追问:在Linux中

1)下载JAR设备(工作时,Windows)

enter image description here

  • 所有第三方罐子
  • 您的部署罐子

  • 输出目录:/ var/tmp中/项目/ DIST

  • 去JAR签名者标签

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

      • 密钥库别名:rememberthisname
      • 公钥:123456
      • 私钥:123456
    • 点击登录JAR! >会告诉我们,如果失败或成功

重复此过程,对于所有其他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

该屏幕截图没有用处,我可以看到。点击细节按钮,它会弹出一个对话框,其中有标签。复制/粘贴每个标签中的*文本*作为对您问题的编辑。此外,请务必使用[JaNeLA](http://pscode.org/janela/)检查JNLP。 – 2012-03-02 11:32:53

+0

@AndrewThompson:伟大的工具:)我发现了问题,我改变了路径,并解决了然后我发现未解决的问题。但我的应用程序使用外部其他jar文件。他们现在没有工作。 Myjar.jar正在处理您的提示。但是Myjar.jar使用的其他包装器像Other1.jar Others2.jar,当我启动Myjar.jar时,功能不起作用。 – YumYumYum 2012-03-02 11:47:54

+0

我现在还必须签署我的所有其他第三方罐子吗?如果它通过JNLP启动? – YumYumYum 2012-03-02 11:48:16

回答

2

要务必使用JaNeLA检查JNLP。

我是否必须现在签署我的所有其他第三方罐子?

这取决于它们是如何部署的。如果它们处于分机中,则分机可以具有不同的安全级别。如果安全级别是沙箱,Jars不需要签名。

但是,那么你可能会面临'混合签署&无符号资源的警告。我不确定它是否适用于扩展。围绕这些警告有很多方法,但我认为部署所有已签名的Jars比较简单,不管它们所使用的扩展名的安全级别如何。

+0

首先我做了所有的jar部署本地系统,但都失败了。然后我签署了所有的罐子并部署到本地系统,但仍然失败。现在我不知道如何解决它。 Myjar.jar很好地推出。但第三方罐子没有被装入。 – YumYumYum 2012-03-02 12:05:30

+0

YumYumYum 2012-03-02 12:07:01

+1

为了简单起见,列出JNLP中的所有Jars。请注意,通过“扩展”,我的意思是从主JNLP引用的其他JNLP文件。但是让我们暂时保持简单,并在单行jar元素中列出主JNLP中的每个Jar。只有一个jar应该被标记为'main =“true”'通过[JWS info。 (http://stackoverflow.com/tags/java-web-start/info),他们提供了有关JNLP文件的含义以及它如何工作的详细信息。 – 2012-03-02 12:21:55

相关问题