我使用 Morena API 来使用 Java 扫描仪。然而,Morena jar 使用与我项目的其余部分不同的密钥进行了签名。当我尝试运行我的小程序并给出以下运行时异常时,这会导致问题:
"Jar resources in JNLP file are not signed by the same certificate"
我在我的项目中使用 netbeans,那么我怎样才能强制 Morena 使用我的签名而不是它附带的签名呢?
由 netbeans 自动生成的 JNLP 文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp href="launch.jnlp" spec="1.0+">
<information>
<title>ArFile</title>
<vendor>Matthew Pigram</vendor>
<homepage href="http://www.allcarecomputerservices.com"/>
<description>ArFile is designed to allow users to effectively manage documents through a convenient cloud storage facility</description>
<description kind="short">ArFile</description>
</information>
<update check="always"/>
<security>
<all-permissions/>
</security>
<resources>
`<j2se java-vm-args="-Djava.security.policy=applet.policy" version="1.6+"/>
<jar href="ArFile.jar" main="true"/>
<jar href="lib/commons-codec-1.4.jar"/>
<jar href="lib/jdom.jar"/>
<jar href="lib/security-1.1.jar"/>
<jar href="lib/emcesu.jar"/>
<jar href="lib/commons-io-2.3-javadoc.jar"/>
<jar href="lib/commons-io-2.3-sources.jar"/>
<jar href="lib/commons-io-2.3-test-sources.jar"/>
<jar href="lib/commons-io-2.3-tests.jar"/>
<jar href="lib/commons-io-2.3.jar"/>
<jar href="lib/jodconverter-core-3.0-beta-4.jar"/>
<jar href="lib/juh-3.2.1.jar"/>
<jar href="lib/jurt-3.2.1.jar"/>
<jar href="lib/ridl-3.2.1.jar"/>
<jar href="lib/unoil-3.2.1.jar"/>
<jar href="lib/mail.jar"/>
<jar href="lib/log4j-1.2.16.jar"/>
<jar href="lib/morena.jar"/>
<jar href="lib/morena_windows.jar"/>
</resources>
<applet-desc height="604" main-class="com.allcare.arfile.ArFileJApplet" name="ArFile" width="756">
</applet-desc>
</jnlp>`
还有这个:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="${jnlp.codebase.value}">
<information>
<title>jnlpcomponent1</title>
<vendor>JARSIGNI</vendor>
</information>
<security>
<all-permissions/>
</security>
<resources>
<jar href="lib/morena.jar" download="eager"/>
<jar href="lib/morena_windows.jar" download="eager"/>
</resources>
<component-desc/>
</jnlp>