Перемещение файла JAR Java на новый компьютер - PullRequest
1 голос
/ 20 мая 2010

У меня есть Java-программа, которая подключается к com-портам, когда она работает. Все, что у меня есть, это файл .JAR. Недавно я попытался перенести это с компьютера, на котором работает программа, на другой компьютер. Я знаю, что последовательные устройства работают на новой машине, потому что я могу взаимодействовать с ними через программу Putty. Когда я запускаю файл .JAR, он появляется и, кажется, работает нормально, но не может подключиться к com-порту. Может ли это быть отсутствующей библиотекой, которая установлена ​​в JRE другого компьютера? Как бы я выяснил, чего не хватает для запуска этой программы?

Ответы [ 3 ]

3 голосов
/ 20 мая 2010

Да, это вполне может быть проблемой. Поддержка устаревших портов (параллельных и последовательных портов) в Java обеспечивается Java Communications API , который опирается на собственный код для поддержки низкоуровневого доступа к этим портам. Этот API является расширением JDK, а не его частью.

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

РЕДАКТИРОВАТЬ: Для кросс-платформенной поддержки устаревших портов, черт возьми, даже если вы собираетесь использовать вашу программу только на одной платформе, я рекомендую RXTX , замену JavaComm с открытым исходным кодом.

1 голос
/ 20 мая 2010

Откройте jar, посмотрите файл META-INF / MANIFEST.MF, чтобы узнать, содержит ли он какие-либо зависимости jar.Если нет, возможно, что JAR использует некоторые собственные библиотеки для подключения к COM-портам.

0 голосов
/ 20 мая 2010

Использование последовательного порта с Java обычно включает добавление скомпилированного собственного (.so или .dll) файла в LD_LIBRARY_PATH.

Я думаю, что вы используете Linux, поэтому ищите файл с именем librxtxSerial.so на исходном компьютере (он будет называться rxtxSerial.dll в Windows)

Путь к библиотеке можно задать несколькими способами, но лучше всего проверить этот файл в исходной установке Java:

например. /jre/lib/i386/librxtxSerial.so

Еще одна вещь, на которую стоит обратить внимание, это сама баночка rxtx (она может быть в вашей банке или нет).

Вы можете получить лучшие результаты, просто следуя инструкциям на веб-сайте RXTX, но сначала я попытаюсь понять исходную установку.

http://rxtx.qbang.org/wiki/index.php/Installation

Удачи!

...