Java-апплет, использующий jacob для загрузки метода com dll, получает сообщение об ошибке: NoClassDefFoundError: com/jacob/activeX/ActiveXComponent

Мне нужно создать апплет, который может загружать метод com, для этой цели я использовал мост java com (jacob) с com dll, и моя среда настроена следующим образом:

  • ОС: win7x64
  • IDE:Eclipse32bit-версия
  • COM DLL:BPIKeyCOM.dll 32-разрядная версия
  • COM-мост: версия jacob1.17-32bit
  • сервер: Tomcatv7.0

Я поместил jacob.dll в C:\Windows\System32 и jacob.jar в WEB-INF\lib

Когда я запускаю проект, он отлично работает в Eclipse. Но при развертывании в Интернете появляются следующие сообщения об ошибках:

java.lang.NoClassDefFoundError: com/jacob/activeX/ActiveXComponent
at Fmain.Ikeycheck(Fmain.java:180)
at Fmain.init(Fmain.java:73)
at sun.applet.AppletPanel.run(AppletPanel.java:435)
at java.lang.Thread.run(Thread.java:724)

Caused by:
java.lang.ClassNotFoundException: com.jacob.activeX.ActiveXComponent
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:219)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:152)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)...

Похоже, это сообщение говорит о том, что не может найти com/jacob/activeX/ActiveXComponent.class, но я не понимаю, как это сделать.

Я уже искал много решений и пытался решить эту проблему, но оно все еще показывает это сообщение об ошибке, которое я использую, чтобы сделать вздох, убедиться, что путь к классам правильный, и даже попытаться изменить файл политики... Но все равно не работает!


person Lilly White    schedule 05.12.2013    source источник


Ответы (2)


Вы установили dll и jacob.jar в свой веб-контейнер Java; к сожалению, это не веб-браузер пользователя (например, Applet Container). Вам нужно добавить dll и файл jacob.jar в банку апплета. Вероятно, вам также следует прочитать это. Также важно отметить, что если ваши пользователи устанавливают 64-битный jdk или не используют Windows, то ваш апплет не будет работать.

person Elliott Frisch    schedule 05.12.2013
comment
когда я подписываю файл jar и делаю то же самое, что и ссылка, которую вы мне дали, ссылка, но она всегда показывает, что я должен указать псевдоним, и я не могу найти свое хранилище ключей в физическом местоположении, что мне делать? - person Lilly White; 06.12.2013
comment
Попробуйте этот учебник от Oracle. Вам нужно будет создать хранилище ключей для одного... - person Elliott Frisch; 06.12.2013

Взгляните на пример с jacob:

например jacob-1.17_src.zip\jacob-1.17\samples\com\jacob\samples\applet

Это хороший пример того, как это работает - внутри даже есть файл readme.txt с полным описанием...

person Lonzak    schedule 06.12.2013