Добавление comm.jar в мою банку - PullRequest
4 голосов
/ 17 августа 2011

Я добавляю comm.jar библиотеку в мой .jar и получаю javax.comm.NoSuchPortException.

Это ошибка, потому что я не добавил javax.comm.properties и win32com.dll в мою банку?Как я могу добавить этот файл в манифест?

Ответы [ 4 ]

3 голосов
/ 17 августа 2011

Java не поддерживает Jars в Jars. Правильный способ гарантировать, что пакеты javax.comm находятся на пути к классам приложения во время выполнения, - это добавить манифест, который обеспечивает относительный путь к зависимому Jar, и убедиться, что Jar находится в нужном месте, которое нужно найти. Для получения дополнительной информации см. Работа с файлами манифеста: Основы и особенно Добавление классов в путь к файлу JAR в Учебном руководстве по Java.

Существуют и другие методы, которые можно использовать для апплетов и приложений. запущен с использованием Java Web Start.

2 голосов
/ 17 августа 2011

@ В ответе Gogoo говорится, чтобы скопировать материал в каталог установки JVM.

Это должно работать, но обычно это не очень хорошая идея:

  • Материал, которыйэта установка будет доступна всем приложениям, которые вы используете с этой установкой.В зависимости от того, что это такое, оно может мешать работе других приложений.

  • Каждый раз, когда вы обновляете свою JVM, вы должны помнить, что нужно копировать эти файлы в новый каталог установки.

IMO, лучшая идея - поместить эти файлы в отдельное дерево каталогов и написать скрипт-обертку для запуска приложения с файлами по пути к классам и пути к библиотекам.И / или см. Ответ Эндрю Томпсона.

1 голос
/ 17 августа 2011

Попробуйте FatJar .

Плагин Fat Jar Eclipse - это инструмент развертывания, который развертывает Затмение Java-проекта в один исполняемый файл.

Добавляет запись "Build Fat-JAR" в Мастер экспорта. В дополнение к стандартные затмения jar-exporter ссылаются на классы и jar входит в «Fat-Jar», поэтому в полученном баночке содержится все необходимое классы и могут быть выполнены непосредственно с "java -jar", без classpath должен быть установлен, дополнительные банки не должны быть развернуты.

0 голосов
/ 17 августа 2011

copy comm.jar \jdk1.6\jre\lib\extcopy win32com.dll \jdk1.6\bincopy javax.comm.properties \jdk1.6\jre\lib

и запустите your.jar через командную строку:

java -jar your.jar

...