如何在java中访问USB端口

我正在尝试编写一个访问usb端口的java应用程序来读取和写入通过usb连接的设备。 我面临的问题是我不知道在java中使用什么来做这样的事情。 我在网上搜索并找到了一个名为JUSB东西,但所有post看起来都很旧。

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

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

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

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

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

看到:

http://usb4java.org/

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

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

请参阅jUSB或usb4java库。

Java Communications API 。 这应该提供与C# System.IO.Ports命名空间类似的function。

如果您使用的是Mac,可以使用/ Volumes /目录访问USB。

例:

您想要写入“Drive”中的文件,因此文件路径将是:

/Volumes/Drive/file.whatever

不确定它是如何在其他平台上完成的,但这是我在mac上找到的最简单的方法