Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

  • Установите 32-битный JDK.
  • Скопируйте 'win32com.dll' в JDK_HOME\jre\bin.
  • Скопировать 'javax.comm.properties'to в JDK_HOME\jre\lib.
  • Скопировать 'comm.jar'to в JDK_HOME\jre\lib\ext.

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

Ответ 2

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

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

Ответ 3

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

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

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

ИЗМЕНИТЬ

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

Ответ 4

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

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

Ответ 5

Есть ли у вас взгляд на RXTX? Я думаю, что он по-прежнему активен.

Ответ 6

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

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

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

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

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