Исключение ClassNotFoundException, создаваемое в Java Web Start Trusted-Library Application
Я работал над приложением для замены апплета, которое должно работать под Java 1.8, поэтому я подписал все JAR-файлы с использованием доверенного сертификата и добавил атрибут Trusted-Library: true
всем своим MANIFEST.MF
файлы.
Мой JNLP выглядит так:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp codebase="http://localhost:8080/myWebApp/myApp/
"href="myAppLaunch.jnlp" spec="1.0+">
<information>
<title>My JWS Application</title>
<vendor>My Company</vendor>
<homepage href=""/>
<description>This application is an applet replacement that needs to satisfy the requirements of a High Security setting in a Java 1.8 environment</description>
<description kind="short">My App</description>
</information>
<update check="always"/>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.7+"/>
<jar href="myApp.jar" main="true"/>
<jar href="lib/commons-httpclient-3.0.1.jar"/>
<jar href="lib/commons-logging-1.1.jar"/>
<jar href="lib/commons-codec-1.3.jar"/>
<jar href="lib/dmapiclientlib-1.3.03.jar"/>
<jar href="lib/mail.jar"/>
<jar href="lib/activation.jar"/>
<jar href="lib/log4j-1.2.17.jar"/>
<jar href="lib/datedFileAppender-1.0.2.jar"/>
</resources>
<application-desc main-class="com.myCompany.myApp.myMainClass">
<argument>action=myAction</argument>
</application-desc>
</jnlp>
Когда я запускаю приложение через Java Web Start, я получаю ClassNotFoundException
для класса (URIException
) в одном из JAR-файлов это приложение зависит от (commons-httpclient-3.0.1.jar
).
Я создавал это приложение через NetBeans и однажды делал это успешно, но сейчас по какой-то причине не могу обойти эту ошибку. Что я делаю неправильно?
1 ответ
Решение
Я полагаю, что проблема, с которой я столкнулся, связана с изменением файлов JAR (путем добавления атрибута доверенной библиотеки) после подписания JAR-файлов.