2014-12-19 1 views
0


Я пытаюсь использовать gson библиотеку с моим апплета, но JRE (8u25) не видит библиотеку и дает мне эту ошибку:

enter image description hereРазвертывание апплет с библиотекой третьей стороной

MyAppSigned.jar мой подписанный апплет
gson-2.3.1.jar это библиотека Я пытаюсь использовать

Test WebPage Контента (test.html):

<html> 
<body> 
<applet code='test.XApplet' width=400 height=400> 
    <param name='ARCHIVE' value='MyAppSigned.jar,gson-2.3.1.jar'> 
    <param name='codebase' value='http://example.com/Commons'> 
</applet> 
</body> 
</html> 

Вот содержание файла манифеста внутри MyAppSigned.jar:

Manifest-Version: 1.0 
Trusted-Library: true 
Class-Path: gson-2.3.1.jar 
Permissions: all-permissions 
Created-By: 1.6.0_26 (Sun Microsystems Inc.) 
Codebase: * 
Name: test/XApplet.class 
SHA1-Digest: qLHEgL7Or0Ja7Jn7iRZt2lJ/928= 

Вот содержание каталога Общин IIS: enter image description here

Я попытался с/без атрибута codebase на моей тестовой веб-странице. он не изменил ошибку.
Но если я скопировать gson-2.3.1.jar в каталог C: \ Program Files \ Java \ jre1.8.0_25 \ Lib \ внутрэто работает без каких-либо ошибок

что я делаю неправильно ?

ответ

1

Прежде всего скопируйте банку в JRE_HOME/lib/ext, это не очень хорошее решение, так как вы должны скопировать эту банку на всех клиентских машинах, которые будут использовать ваш апплет.

Я думаю, что проблема с вашим кодом в вашем <applet> определения, вы используете <param> определить archive, однако в документации archive и другие определяются как атрибуты <applet> тега, взгляните на documentation. Так что попробуйте определения <applet> следующим образом:

<html> 
<body> 
<applet code="test.XApplet" width="400" height="400" 
    archive="MyAppSigned.jar,gson-2.3.1.jar" codebase="http://example.com/Commons"> 
</applet> 
</body> 
</html> 

Обратите внимание, что лучше использовать <object> поскольку <applet> тег не будет поддерживаться в HTML5, также думать о use deployJava.js, который может сделать более легким для развертывания апплета в разных браузерах.

Надеюсь, что это поможет,

+0

Я знаю, что я только что попросил предоставить дополнительную информацию. Я попробовал html-код, который вы даете, но я получаю ту же ошибку. – e13420xx

+0

на консоли я смотрю это. network: Загружено http://example.com/commons/gson-2.3.1.jar: C: \ Users \ BAHADI ~ 1 \ AppData \ Local \ Temp \ jar_cache7646433364735176176.tmp cache: добавление записи MemoryCache: http: // example.com/commons/gson-2.3.1.jar кэш: registerReference: [email protected]d: 1 java.lang.NoClassDefFoundError: COM/Google/gson/JsonParser – e13420xx

+0

@ e13420xx он подключен, только чтобы быть уверенным: оба 'jars' доступны по URL-адресу, указанному' codebase'? Я полагаю, что это потому, что в ваших трассах есть «network: Downloaded example.com/commons ...». Однако вы можете загружать вручную и проверять правильность 'jar' и имеет' com/google/gson/JsonParser' класс, только чтобы убедиться, что он не поврежден.Другим вариантом является очистка кеша java-плагина, поскольку вы разрабатываете, возможно, что-то не так в кеше, перейдите на панель управления java> общая вкладка> временные файлы Интернета> Конфигурация ... 'очистите все архивы и повторите попытку. Надеюсь, это поможет – albciff

Смежные вопросы