我试图通过java web start制作一个swing-app可再发行组件。我用netbeans 7.4构建jar和jnlp。
通过网络下载应用程序时收到此消息。(抱歉西班牙语) 但它说manifest.mf不包含权限属性。
我没有使用受信任的证书(由CA)我自己使用netbeans工具创建了密钥库。
在project.properties
我放
# Optional override of default Codebase manifest attribute, use to prevent RIAs from being repurposed
manifest.custom.codebase=http://150.1.1.32:8084/
# Optional override of default Permissions manifest attribute (supported values: sandbox, all-permissions)
manifest.custom.permissions=all-permissions
manifest.file=manifest.mf
当我看到从主jar开始构建jar清单后,所有依赖jar都具有属性all-permissions
Permissions: all-permissions
Created-By: 1.7.0_45-b18 (Oracle Corporation)
Main-Class: com.onix.sirf.gui.executors.SwingExecutor
Codebase: http://150.1.1.32:8084/
这是我的jnlp
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp codebase="http://150.1.1.32:8084/" href="sirf.jnlp" spec="1.0+">
<information>
<title>title</title>
<vendor>blabla</vendor>
<homepage href="http://www.blabla.com"/>
<description>Some description</description>
<description kind="short">HelloWorld</description>
</information>
<update check="always"/>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.7+"/>
<jar href="frontend.jar" main="true"/>
<jar href="lib/commons-lang3-3.1.jar"/>
<jar href="lib/jcalendar-1.4.jar"/>
<jar href="lib/log4j-1.2.17.jar"/>
<jar href="lib/swingx-all-1.6.4.jar"/>
-- there are some more libraries
<extension href="jnlpcomponent1.jnlp"/> -- here is one more library sqljdbc4.jar
</resources>
<application-desc main-class="com.onix.sirf.gui.executors.SwingExecutor">
</application-desc>
</jnlp>
jnlpcomponent1.jnlp
<jnlp codebase="http://150.1.1.32:8084/" href="jnlpcomponent1.jnlp" spec="1.0+">
<information>
<title>jnlpcomponent1</title>
<vendor>MSFTSIG</vendor>
</information>
<security>
<all-permissions/>
</security>
<resources>
<jar href="lib/sqljdbc4.jar" download="eager"/>
</resources>
<component-desc/>
</jnlp>
答案 0 :(得分:0)
我解决了。
在jnlpcomponent1.jnlp
我看到sqljdbc4.jar
已经由微软签署。
当我查看其manifest.mf
时,它没有属性Permissions: all-permissions
。所以我删除了sqljdbc4.jar
中的所有清单文件,并删空(清除MSFTSIG.SF
和MSFTSIG.RSA
)。现在使用我的签名再次构建应用程序,并在清单文件中使用Permissions: all-permissions
,并像魅力一样工作。