Java Web Start清单问题

时间:2013-12-06 19:03:14

标签: java swing netbeans jnlp

我试图通过java web start制作一个swing-app可再发行组件。我用netbeans 7.4构建jar和jnlp。

通过网络下载应用程序时收到此消息。(抱歉西班牙语) 但它说manifest.mf不包含权限属性。

enter image description here

我没有使用受信任的证书(由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>

1 个答案:

答案 0 :(得分:0)

我解决了。

jnlpcomponent1.jnlp我看到sqljdbc4.jar已经由微软签署。

当我查看其manifest.mf时,它没有属性Permissions: all-permissions。所以我删除了sqljdbc4.jar中的所有清单文件,并删空(清除MSFTSIG.SFMSFTSIG.RSA)。现在使用我的签名再次构建应用程序,并在清单文件中使用Permissions: all-permissions,并像魅力一样工作。