32

我正在尝试编写一个访问 USB 端口以读取和写入通过 USB 连接的设备的 Java 应用程序。我面临的问题是我不知道在 java 中究竟使用什么来做这样的事情。我在网上搜索并找到了一个名为JUSB但所有帖子似乎都相当旧的东西。

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

我的问题是,最新版本的 JRE 中是否有任何东西可以用来访问 USB 端口就像等效的 C# 代码一样简单)?

4

6 回答 6

27

在跨平台(Linux 和 Windows)上使用 usb4java 一年了,效果很好。

看:

http://usb4java.org/

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

于 2014-09-19T02:34:51.043 回答
14

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

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

于 2010-01-23T00:53:28.193 回答
7

您可能想看看 usb4java - http://usb4java.org/index.html它似乎支持 Windows、Linux 和 Mac OS,并且在发布时似乎是相当最新的。不幸的是,在 LGPL 下,因此可能不适合商业开发。

于 2013-12-16T11:05:17.780 回答
7

请参阅jUSBusb4java库。

于 2010-01-23T00:41:35.507 回答
2

Java 通信API 。这应该提供与 C# System.IO.Ports命名空间类似的功能。

于 2010-01-23T00:38:55.103 回答
-2

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

例子:

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

/Volumes/Drive/file.whatever

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

于 2018-07-02T23:47:58.340 回答