如何在java中访问USB端口

Pet*_*zah 28 java usb rxtx

我正在尝试编写一个访问usb端口的java应用程序来读取和写入通过usb连接的设备.我面临的问题是我不知道在java中使用什么来做这样的事情.我在网上搜索并发现了一些叫做JUSB但所有帖子看起来都很旧的帖子.

目前我正在使用这些RXTX库但我有时会遇到一些同步错误.当我使用C#做相同的操作时,它需要的代码少得多,而且我不会遇到任何相同的同步错误.

我的问题是,我可以使用最新版本的JRE内置任何内容来访问usb端口(这与同等的C#代码一样简单)吗?

小智 24

在cross platfom(Linux和Windows)上使用usb4java一年,效果很好.

看到:

http://usb4java.org/

它们非常活跃,并且具有非常好的javax USB前端.


Dav*_*ims 14

在Java中没有任何东西等同于C#的USB支持.jUSB和Java-USB都严重过时,可能无法用于任何严肃的应用程序开发.

如果你想实现一个跨平台的USB应用程序,最好的办法是编写一个抽象的JNI接口,该接口可以与您自己编写的Linux,Mac和Windows本机库进行对话.我会看看LibUSB来处理Mac和Linux.正如您所见,Windows非常简单.我刚刚完成了为期一年的项目,不幸的是,这是唯一一个严肃的跨平台解决方案.如果您不必在Windows上实现并且您的需求有限,那么您可能会使用其中一个较旧的Java库(jUSB或Java-USB).任何需要在Win32/Win64上部署的东西都需要一个本机组件.


Jim*_*ans 7

请参阅jUSBusb4java库.

  • Java-USB仅限Linux.如果这就是你所需要的,它可能会有用,虽然它似乎没有在一段时间内更新. (5认同)

wom*_*ine 7

你可能想看看usb4java - http://usb4java.org/index.html它似乎支持Windows,Linux和Mac OS,并且在发布时似乎是合理的.遗憾的是LGPL下可能不适合商业开发.

  • 如果您只想在代码中使用他们的API(并且您拥有非LGPL许可证),那么与LGPL库链接应该不是问题.GPL许可库是copyleft许可证,无论您使用何种许可证,都会强制您的代码许可证成为GPL许可证. (2认同)