Развертывание Java-веб-апплета со сторонними зависимостями - PullRequest
1 голос
/ 06 июля 2010

Я создал Java-апплет, который зависит от некоторых сторонних библиотек, а также от DLL, которая вызывается через JNI. Они, очевидно, не будут установлены на клиентских компьютерах. Есть ли способ упаковать эти сторонние библиотеки и внешние библиотеки DLL в JAR моего апплета, чтобы он мог запускаться любым клиентом с базовой установкой Java?

Ответы [ 3 ]

1 голос
/ 06 июля 2010

Есть ли в любом случае, чтобы упаковать эти третьи партийные библиотеки

В Eclipse, в свойствах проекта Java (щелкните правой кнопкой мыши), я могу сделать:

 Export... => Export as Runnable JAR

Затем я говорю ему упаковать мои jar-зависимости в этот экспортированный JAR-файл. Экспортированный JAR будет упакован во все его зависимости.

альтернативный текст http://www.ubuntu -pics.de / bild / 97131 / selection_016_mg6IDm.png

1 голос
/ 07 июля 2010

Я не специалист по данной теме, но есть рабочие решения всех этих проблем. Они могут причинить вам головную боль, но некоторые вещи можно сделать только так (и я совершенно уверен, что ваша проблема с Entrust CSP одна из них).

Вы можете взглянуть на OpenSign из OpenOCES-проекта . Волшебство происходит в org.openoces.opensign.client.applet.bootstrap.

Я также считаю, что JNLPAppletLauncher решает ту же проблему, но у меня нет опыта работы с i.

1 голос
/ 06 июля 2010

Использование JNI в веб-приложении - это рецепт изжоги, особенно в Windows.

  • Очевидно, что вы не можете развернуть DLL в вашем WAR-файле и, вероятно, потребует, чтобы установщик запустил отдельный установщик.
  • Вы должны будете убедиться, что ваш java.library.path настроен правильно, что обычно выполняется настройками на сервере приложений, а не чем-то, что можно развернуть в файле WAR.
  • То, как JNI связывает собственный класс с библиотекой, вызовет головную боль загрузчика классов, если вы попытаетесь запустить более одного экземпляра этого веб-приложения. Один из способов обойти это - переместить содержащийся JAR-файл в загрузчик общих классов (например, в общую папку Tomcat), но у него есть свои сложности.
...