Развернуть веб -апплет Java с сторонними зависимостями
-
02-10-2019 - |
Вопрос
Я сделал Java Applet, который зависит от некоторых сторонних либеров, а также DLL, который называется JNI. Они, очевидно, не будут установлены на компьютерах клиентов. Есть ли в любом случае, чтобы упаковать эти сторонние либеары и внешние DLL в банке моего апплета, чтобы он мог запустить какой -либо клиент с базовой установкой Java?
Решение
Использование JNI в веб -приложении является рецептом изжоги, особенно в Windows.
- Вы, очевидно, не можете развернуть DLL в вашем военном файле, и, вероятно, потребуется заранее запустить отдельный установщик.
- Вам придется убедиться, что ваш
java.library.path
правильно настроен, что обычно выполняется настройками на сервере приложений, а не что -то, что можно развернуть в войне. - То, как JNI связывает нативный класс с библиотекой, вызовет головные боли загрузчика класса, если вы попытаетесь запустить более одного экземпляра этого веб -приложения. Один из способов обойти это - переместить содержащий файл JAR в общий загрузчик класса (например, общая папка Tomcat), но у него есть свои осложнения.
Другие советы
Есть ли в любом случае, чтобы упаковать эти сторонние либеары
В Eclipse, под свойствами проекта Java (щелчок правой кнопкой мыши), я могу сделать:
Export... => Export as Runnable JAR
Затем я говорю это упаковать свои зависимости от банки в эту экспортируемую банку. Экспортируемая банка будет иметь все свои зависимости в нее.
Alt Text http://www.ubuntu-pics.de/bild/97131/selection_016_mg6idm.png
Я не эксперт по этой теме, но там находятся Рабочие решения для всех этих проблем. Они могут придать вам головную боль, но некоторые вещи могут быть сделаны только по этим способам (и я совершенно уверен, что ваша проблема с поверкой CSP является одной из них).
Вы можете взглянуть на Откроется от Openoces-project. Анкет Магия происходит в org.openoces.opensign.client.applet.bootstrap.
Я также верю, что Jnlpappletlauncher Решает ту же проблему, но у меня нет опыта с i.