运行 迁移到 Java 8 后的一个 jnlp 文件

Run a jnlp file after migrating to Java 8

我正在做一个项目,客户现在从Java 6 移动到Java 8。我们在我们的项目中下载一个jnlp 文件到运行 a java 申请。在 Java 6 中,我们没有遇到任何问题,但现在迁移到 Java 8 后,我们面临安全问题,因为我们不能再使用自签名 jar。客户给我们提供了证书。 我的问题是如何 运行 Java 8 中的那个 jnlp 文件? 我已经尝试签署我们在 jnlp 文件中使用的 jar。我使用了 Java 提供的 cacerts 密钥库。我 运行 以下命令将证书添加到 Java 密钥库:

keytool -import -keystore cacerts -alias myalias -file "mycertificate"

jarsigner -keystore cacerts myjar myalias

现在,我在执行此操作时遇到以下错误 jarsigner:找不到证书链:myalias

因为我什至无法对我们使用的 jar 进行签名,所以我应该怎么做才能在机器中制作 jnlp 运行? jnlp 模板是这样的:

<information>
    <title>${appTitle}</title>
    <vendor>Vendor</vendor>
    <homepage href="${codeBase}" />
    <description>Java App</description>
</information>

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

<resources>
    <j2se version="1.6+" />
    <jar href="${jarPath}" />
    <#if jarDependenciesPath??>
    <#list jarDependenciesPath as jarDependencyPath>
    <jar href="${jarDependencyPath}" />
    </#list>
    </#if>
 </resources>
 <application-desc
     name="${appTitle}"
     main-class="${mainClass}"
     width="300"
     height="300">
     <#list args as arg>
        <argument>${arg}</argument>
     </#list>
 </application-desc>

看来你的证书不好。使用好的证书。

或者,您可以在 JAVA 控制台中添加例外以绕过安全性。