Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Web启动异常JNLP_Java_Deployment_Jnlp_Java Web Start - Fatal编程技术网

Java Web启动异常JNLP

Java Web启动异常JNLP,java,deployment,jnlp,java-web-start,Java,Deployment,Jnlp,Java Web Start,因此,我对如何对jar进行签名以使其作为jnlp运行感到有点困惑 目前我有一个jar,它运行,开始下载和验证东西,然后它到了最后,弹出一个窗口说它无法启动,然后它给出了异常: JNLPException[category: Launch File Error : Exception: null : LaunchDesc: <jnlp codebase="http:/SomeHost:8080/_test/" href="jnlpcomponent1.jnlp" spec="1.0+"&

因此,我对如何对jar进行签名以使其作为jnlp运行感到有点困惑

目前我有一个jar,它运行,开始下载和验证东西,然后它到了最后,弹出一个窗口说它无法启动,然后它给出了异常:

JNLPException[category: Launch File Error : Exception: null : LaunchDesc: 
 <jnlp codebase="http:/SomeHost:8080/_test/" href="jnlpcomponent1.jnlp" spec="1.0+">
<information>
  <title>jnlpcomponent1</title>
 <vendor>SUN_MICR</vendor>
 </information>
 <security>
 <all-permissions/>
  </security>
<resources>
 <jar href="lib/activation.jar" download="eager"/>
<jar href="lib/mail.jar" download="eager"/>
 </resources>
 <component-desc/>
 </jnlp> 
]
at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResourcesHelper(Unknown Source)
at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResources(Unknown Source)
at com.sun.javaws.Launcher.prepareResources(Unknown Source)
at com.sun.javaws.Launcher.prepareAllResources(Unknown Source)
at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
at com.sun.javaws.Launcher.launch(Unknown Source)
at com.sun.javaws.Main.launchApp(Unknown Source)
at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
at com.sun.javaws.Main$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
JNLPException[类别:启动文件错误:异常:null:LaunchDesc:
jnlpcomponent1
新密
]
位于com.sun.javaws.security.jnlpsignedResourceHelper.CheckSignedResourceHelper(未知源)
位于com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResources(未知源)
位于com.sun.javaws.Launcher.prepareResources(未知源)
位于com.sun.javaws.Launcher.prepareAllResources(未知源)
位于com.sun.javaws.Launcher.prepareToLaunch(未知源)
位于com.sun.javaws.Launcher.prepareToLaunch(未知源)
位于com.sun.javaws.Launcher.launch(未知源)
位于com.sun.javaws.Main.launchApp(未知源)
位于com.sun.javaws.Main.continueInSecureThread(未知源)
位于com.sun.javaws.Main$1.run(未知源)
位于java.lang.Thread.run(未知源)
我相当肯定这与jar的签名错误/错误有关。。。我需要一些帮助来了解这里发生了什么以及如何解决它

非常感谢

我相当肯定这与正在签署的jar有关 错/差

正是这种情况,你的一个罐子没有签名(正确)

什么对我总是有效: 解压所有JAR,然后使用1进程签名。如果确认它工作正常,那么我将删除1-2个jar以匹配原始部署设计。你会知道问题出在什么罐子里,而不是更容易解决

我相当肯定这与正在签署的jar有关 错/差

正是这种情况,你的一个罐子没有签名(正确)

什么对我总是有效:
解压所有JAR,然后使用1进程签名。如果确认它工作正常,那么我将删除1-2个jar以匹配原始部署设计。您将知道问题出在哪个jar中,而不是更容易解决它。

您可以使用ANT对jar文件进行签名。通过这种方式,您可以从IDE中对文件进行签名,这有助于在部署应用程序时加快工作流程。每次更改都需要重新签署应用程序

<project name="YourProject" default="dist" basedir="jarsigning">

  <target name="signMainJar">
     <signjar jar="../dist/YourApp.jar" destDir="signed" alias="WhateverYouSetIt2" 
              keystore="fileNameOfCerticate" storepass="passw03d" lazy="true" /> 
     <echo message="The file was signed." /> 
  </target>
  <!-- Use this if you are using any libraries. These also need to be signed. -->
  <target name="signLibs">
    <signjar destDir="signed" alias="WhateverYouSetIt2"
              keystore="fileNameOfCerticate" storepass="passw03d" force="true">
       <path>
          <fileset dir="lib" includes="*.jar" /> 
       </path>
    </signjar>
    <echo message="The library files were signed." /> 
  </target>

 </project>


在运行此脚本之前,您需要首先创建一个jarsigning目录,并放置一个用于签名的证书(密钥)。在该文件夹中,创建一个名为“signed”的文件夹,脚本将在该文件夹中放置您的签名代码。如果您尚未从Verisign或GoDaddy等授权机构购买自签名证书,请使用创建自签名证书。

您可以使用ANT对JAR文件进行签名。通过这种方式,您可以从IDE中对文件进行签名,这有助于在部署应用程序时加快工作流程。每次更改都需要重新签署应用程序

<project name="YourProject" default="dist" basedir="jarsigning">

  <target name="signMainJar">
     <signjar jar="../dist/YourApp.jar" destDir="signed" alias="WhateverYouSetIt2" 
              keystore="fileNameOfCerticate" storepass="passw03d" lazy="true" /> 
     <echo message="The file was signed." /> 
  </target>
  <!-- Use this if you are using any libraries. These also need to be signed. -->
  <target name="signLibs">
    <signjar destDir="signed" alias="WhateverYouSetIt2"
              keystore="fileNameOfCerticate" storepass="passw03d" force="true">
       <path>
          <fileset dir="lib" includes="*.jar" /> 
       </path>
    </signjar>
    <echo message="The library files were signed." /> 
  </target>

 </project>


在运行此脚本之前,您需要首先创建一个jarsigning目录,并放置一个用于签名的证书(密钥)。在该文件夹中,创建一个名为“signed”的文件夹,脚本将在该文件夹中放置您的签名代码。如果您尚未从Verisign或GoDaddy等授权机构购买自签名证书,请使用创建自签名证书。

您如何对jar进行签名?比如,命令和结果输出是什么?这就是问题所在,我根本没有对它们进行签名,这只是从netbeans对JNLP进行普通的clean+构建。签署jnlp的正确方法是什么?使用jarsigner。请看这里:您需要一个密钥库,如果您愿意,您可以自己创建。是否有推荐的方法与团队共享我的密钥库,以便我们可以作为同一个实体进行签名?尝试搜索bug DB/引发bug。但是一定要先使用检查JNLP。您是如何对jar进行签名的?比如,命令和结果输出是什么?这就是问题所在,我根本没有对它们进行签名,这只是从netbeans对JNLP进行普通的clean+构建。签署jnlp的正确方法是什么?使用jarsigner。请看这里:您需要一个密钥库,如果您愿意,您可以自己创建。是否有推荐的方法与团队共享我的密钥库,以便我们可以作为同一个实体进行签名?尝试搜索bug DB/引发bug。但一定要首先使用检查JNLP。引述自上面的话:“这就是问题所在,我根本没有对它们进行签名,这只是从netbeans对JNLP进行正常的清理+构建。签署JNLP的正确方法是什么?”@Damien.Bell引述自上面:“这就是问题所在,我一点也不签署它们,这只是通过netbeans的JNLP的普通clean+构建。签署jnlp的正确方法是什么?“@Damien.Bell