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

Как получить доступ к портам USB в java

Я пытаюсь написать приложение Java, которое обращается к портам USB для чтения и записи на устройство, подключенное через USB. Проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, что именно использовать в java, чтобы делать такую ​​вещь. Я искал в Интернете и нашел что-то под названием JUSB, но все сообщения выглядят довольно старыми.

В настоящее время я использую библиотеки RXTX, но иногда сталкиваюсь с некоторой ошибкой синхронизации. Когда я использую С# для выполнения эквивалента, он требует гораздо меньше кода, и я не сталкиваюсь с какой-либо одной ошибкой синхронизации.

Мой вопрос: есть ли что-нибудь встроенное в последнюю версию JRE, которую я могу использовать для доступа к портам usb (это так же просто, как эквивалентный код С#)?

4b9b3361

Ответ 1

Ничего не эквивалентно поддержке С# USB в Java. Как jUSB, так и Java-USB сильно устарели и, вероятно, непригодны для любой серьезной разработки приложений.

Если вы хотите внедрить кросс-платформенное приложение USB, действительно лучше всего написать абстрактный интерфейс JNI, который говорит с Linux, Mac и Windows, которые вам придется писать самостоятельно. Я бы посмотрел LibUSB для работы с Mac и Linux. Windows, как вы видели, довольно проста. Я только что закончил годичный проект, который сделал именно это, и, к сожалению, это единственное серьезное кросс-платформенное решение. Если вам не нужно реализовывать в Windows и ваши потребности ограничены, вы можете пройти с одной из старых Java-библиотек (jUSB или Java-USB). Все, что требуется для развертывания на Win32/Win64, будет иметь собственный компонент.

Ответ 2

Используется usb4java в течение года на cross platfom (Linux и Windows), и он отлично работает.

См:

http://usb4java.org/

Они очень активны и имеют очень хороший USB-интерфейс javax.

Ответ 3

Смотрите jUSB или usb4java библиотеки.

Ответ 4

Возможно, вы захотите взглянуть на usb4java - http://usb4java.org/index.html, он, похоже, поддерживает Windows, Linux и Mac OS и, по-видимому, разумно текущий во время публикации. К сожалению, под LGPL, возможно, не подходит для коммерческого развития.

Ответ 5

API связи Java. Это должно обеспечить аналогичную функциональность для пространства имен С# System.IO.Ports.

Ответ 6

Если вы находитесь на Mac, доступ к USB можно получить в каталоге /Volumes/.

Пример:

Вы хотите записать файл в "Диск", поэтому путь к файлу будет следующим:

/Volumes/Drive/file.whatever

Не уверен, как это происходит на других платформах, но это самый простой способ, который я нашел на Mac