如何在java中访问USB端口

如何在java中访问USB端口,java,usb,rxtx,Java,Usb,Rxtx,我正在尝试编写一个java应用程序,它访问usb端口,以便对通过usb连接的设备进行读写操作。我面临的问题是,我不知道在java中使用什么来做这样的事情。我在网上搜索,找到了一个名为JUSB的东西,但所有的帖子似乎都很旧 目前我正在使用RXTX库,但有时会遇到一些同步错误。当我使用C#来做类似的事情时,它需要的代码要少得多,而且我不会遇到任何相同的同步错误 我的问题是,最新版本的JRE中是否内置了任何东西,我可以用来访问usb端口(这与等效的C代码一样简单)?。这应该提供与C#名称空间类似的功能

我正在尝试编写一个java应用程序,它访问usb端口,以便对通过usb连接的设备进行读写操作。我面临的问题是,我不知道在java中使用什么来做这样的事情。我在网上搜索,找到了一个名为JUSB的东西,但所有的帖子似乎都很旧

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


我的问题是,最新版本的JRE中是否内置了任何东西,我可以用来访问usb端口(这与等效的C代码一样简单)?

。这应该提供与C#名称空间类似的功能。

请参阅或库。

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


如果你想实现一个跨平台的USB应用程序,你最好的选择就是编写一个抽象接口,它可以与Linux、Mac和Windows本机库进行通信,而这些都是你自己编写的。我想看看如何处理Mac和Linux。正如您所看到的,Windows非常简单。我刚刚完成了一个为期一年的项目,就是这样做的,不幸的是,这是唯一严肃的跨平台解决方案。如果您不必在Windows上实现,并且您的需求有限,那么您可以使用一种较旧的Java LIB(jUSB或Java USB)来解决问题。任何需要在Win32/Win64上部署的组件都需要本机组件

您可能想看看usb4java——它似乎支持Windows、Linux和Mac操作系统,并且在发布时看起来相当流行。不幸的是,在LGPL下,因此可能不适合商业开发。

在跨平台(Linux和Windows)上使用usb4java已有一年,效果非常好

见:


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

如果您在mac上,可以通过/Volumes/目录访问USB

例如:

您希望写入“驱动器”中的文件,因此文件路径为:

/Volumes/Drive/file.whatever


不确定它是如何在其他平台上实现的,但这是我在mac上发现的最简单的方法。IO.Ports用于串行通信,除非OP暗示串行到usb接口?!同意--System.IO.Ports没有USB接口,仅用于Com端口。如果您的USB设备暴露在Com端口上,则可以使用System.IO.Ports。泰勒:您尝试过吗?它真的能用吗?是的,我有一个应用程序,我每天都在使用它。USB设备是磁条卡的编码器。Java-USB仅适用于Linux。如果这就是您所需要的,它可能会成功,尽管它似乎在一段时间内没有被更新。如果您只打算在代码中使用LGPL库的API(并且您拥有非LGPL许可证),那么链接LGPL库不应该是一个问题。GPL许可库是copyleft许可证,无论您使用的是什么许可证,都会强制代码的许可证也是GPL许可证。只能访问驱动器。但是还有很多USB设备呢?似乎是个不错的选择。我与这一事态发展无关。