API Javax.comm в 64-битной Windows - PullRequest
       10

API Javax.comm в 64-битной Windows

17 голосов
/ 18 октября 2010

Я использую API javax.comm, чтобы помочь моей программе взаимодействовать с оборудованием через последовательный порт.Я использую Windows 7 и NetBeans IDE 9.

Я использовал обычную программу Java для проверки доступных портов на моем ПК.Программа скомпилирована и запущена без ошибок.Однако ничего не вернулось.

Что я могу сделать, чтобы использовать API javax.comm в Windows?Похоже, win32com.dll не работает с 64-разрядной операционной системой.

Ответы [ 7 ]

9 голосов
/ 06 сентября 2012

Вот как я заставил его работать.
Я протестировал его с помощью JDK 1.6 (32-битная версия) на моей 64-битной машине с Windows 7.

  1. Установить 32-битный JDK.
  2. Скопируйте файл win32com.dll в JDK_HOME \ jre \ bin.
  3. Скопируйте файл javax.comm.properties в JDK_HOME \ jre \ lib.
  4. Скопируйте файл comm.jar в JDK_HOME \ jre \ lib \ ext.

Теперь запустите вашу программу, и она должна работать.

5 голосов
/ 18 октября 2010

Последние версии 2.2pre RXTX включают двоичные файлы для 64-битных окон.Я думаю последний источник информации RXTX был изменен на: http://rxtx.qbang.org вместо http://www.rxtx.org хотя.

В какой-то момент библиотека RXTX включала раскрывающийсяподдержка использования API javax.comm.Я не уверен, что это все-таки произойдет, но основным изменением использования «родной» упаковки RXTX было прежде всего изменение имени пакета.

3 голосов
/ 18 октября 2010

кажется, что win32com.dll не работает с 64-битной операционной системой

Я думаю, что это правильно. Фактически, согласно соответствующей странице загрузки, Oracle больше не поддерживает API javax.comm для любой платформы Windows.

Однако я нашел эту страницу , в которой, помимо прочего, имеется 64-битная сборка DLL.

EDIT

Поразительным исследованием (т. Е. Переходом по ссылкам и прочтению материалов) я нашел страницу загрузки для последней версии RXTX, которая утверждает, что имеет двоичные файлы для различных платформ. Если вашей платформы нет, попробуйте собрать из исходного кода. Если это не сработает, подумайте о том, чтобы приложить усилия, чтобы это сработало.

2 голосов
/ 22 октября 2011

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

Последний выпуск, который является http://rxtx.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip,, больше не имеет этой проблемы. К сожалению, я думаю, что он решен только для Windows, он все еще там на двоичных файлах Linux, и я не пробовал это на Mac.

1 голос
/ 06 октября 2011

Вас может заинтересовать альтернативная библиотека, которую я создал: http://code.google.com/p/jperipheral/

1 голос
/ 27 июля 2011

У меня была эта проблема ... на 64-битной машине .. работает Windows 7

устаревшее приложение, разработанное в jdk 1.4, для 32-битных окон ... и использующее двоичный файл win32 comm api

Я попробовал двоичный файл RXTX для 64-битной системы, и я смог установить связь с моим устройством на некотором уровне ... но ... были другие проблемы, так как мое приложение ссылалось на версию библиотеки jpos, которая внутренне использовала коммуникацию -api (имел импорт javax.comm. * ... в некотором классе Serial ... Listener) ....

Я установил 32-битный jdk и настроил бинарные файлы comm-api для 32-битных окон, как указано здесь ... setup comm api на windows

потом все было хорошо

1 голос
/ 18 октября 2010

У вас есть взгляд на RXTX ?Я думаю, что он все еще активен.

...