如何修复此错误?我的部署 dist 中包含我的网络服务器中的所有 jar 文件。但是一旦我按下 icon.jnlp 它就会说这个错误。
图标.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)
- 唱所有第三方 jar
您的部署 jar
输出目录:/var/tmp/project/dist
转到 JAR 签名者选项卡
- 输入jar文件:a.jar
- jarsigner 位置:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/bin/jarsigner
- keystore 文件
- 如果未创建 key > 单击“生成 keystore ” - keytool位置:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/bin/keytool - 输出 keystore 文件:/var/tmp/keystore - keystore 别名:记住这个名称 - 公钥:123456 - 私钥:123456 - 有效期:0表示6个月 - keystore 身份 - 有效信息... - 按生成 keystore - 它将创建/var/tmp/keystore 和 java.key.public 和 java.key
keystore 身份验证
- keystore 别名:记住这个名称
- 公钥:123456
- 私钥:123456
点击签名 JAR! > 将告诉您是否失败或成功
- 输入jar文件:a.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>
最佳答案
请务必使用 JaNeLA 检查 JNLP .
Do i have to sign now all my other third party jars also?
这取决于它们的部署方式。如果它们位于扩展中,则扩展可以具有不同的安全级别。如果安全级别是沙盒的,则不需要对 Jars 进行签名。
但是您可能会面临“混合签名和未签名资源”警告。我不确定它是否适用于扩展之间。有很多方法可以解决这些警告,但我认为部署所有签名的 Jars 会更简单,无论它们所使用的扩展的安全级别如何。
关于java - JNLP - 如何部署运行的应用程序并创建用于启动 a.jar 的桌面图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9531759/