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

Java JNLP-如何部署运行并创建桌面图标以启动a.jar的应用程序?,java,installation,jnlp,java-web-start,package-managers,Java,Installation,Jnlp,Java Web Start,Package Managers,如何修复此错误?我有我的部署区,所有jar文件都包含在我的Web服务器中。但一旦我按下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>

如何修复此错误?我有我的部署区,所有jar文件都包含在我的Web服务器中。但一旦我按下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>

样品
样品
样品
样品

跟进:

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

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

  • 输出目录:/var/tmp/project/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/keystore、java.key.public和java.key
    • 密钥库身份验证

      • 密钥库别名:rememberthisname
      • 公钥:123456
      • 私钥:123456
    • 单击签名罐!>会告诉你是失败还是成功

对所有其他要签名的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>

确保使用检查JNLP


我现在是否也必须签署所有其他第三方JAR

这取决于它们是如何部署的。如果它们位于扩展中,则扩展可以具有不同的安全级别。如果安全级别为沙盒,则无需签署JAR


但是,您可能会面临“混合已签名和未签名资源”的警告。我不确定它是否适用于不同的扩展。有很多方法可以绕过这些警告,但我认为部署所有已签名的JAR更简单,而不管它们所使用的扩展的安全级别如何。

我看不出这个屏幕截图是没有用的。单击“详细信息”按钮,将弹出一个对话框,其中包含选项卡。复制/粘贴每个选项卡中的文本,作为对问题的编辑。另外,请务必使用@andrewhompson:Great tool:)检查JNLP。我发现了问题,我更改了路径并解决了问题,然后找到了解决了的未签名问题。但我的应用程序使用的是外部的其他jar文件。他们现在不工作了。Myjar.jar正在使用您的提示。但是Myjar.jar正在使用其他包装,如Others1.jar Others2.jar。当我启动Myjar.jar时,功能不起作用。我现在是否也必须签署所有其他第三方jar?如果它通过JNLP启动?嗯。。我非常确定JaNeLA应该警告
main=“flas”
该属性默认为false,所以我通常会放置一个
main=“true”
属性,而将其余的属性完全忽略。首先,我做了所有JAR部署本地系统,但失败了。然后我签署了所有JAR并部署到本地系统,但仍然失败。现在我不知道如何解决它。Myjar.jar启动得很好。但第三方jar没有加载。为简单起见,请列出JNLP中的所有JAR。请注意,“扩展名”是指从主JNLP引用的其他JNLP文件。但是现在让我们保持简单&在一行
Jar
元素中列出主JNLP中的每个Jar。只有一个jar应该被标记为
main=“true”
通过上的链接,它们提供了关于JNLP文件的含义以及如何工作的详细信息。