如何在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一年,效果很好。
看到:
它们非常活跃,并且具有非常好的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上找到的最简单的方法