如何在Windows和Java下与USB设备通信?

如何在Windows和Java下与USB设备通信?,java,windows,usb,Java,Windows,Usb,我想在Windows和Java下与USB设备通信,但我找不到一个好的库。我不希望用户必须安装任何额外的硬件或设备驱动程序来实现这一点。也就是说,我希望能够像其他Windows应用程序一样与USB进行交互 我熟悉jUSB和JSR80,但这两个项目似乎都是死项目(至少对于Windows而言)。不久前我对此做了很多研究,不幸的是,所有有用的免费USB+Windows+Java项目都死了。有一个商业和昂贵的(价格39.99美元不是每个开发者,而是每个软件出售的副本!)库可能会工作,虽然我没有这方面的经验

我想在Windows和Java下与USB设备通信,但我找不到一个好的库。我不希望用户必须安装任何额外的硬件或设备驱动程序来实现这一点。也就是说,我希望能够像其他Windows应用程序一样与USB进行交互


我熟悉jUSB和JSR80,但这两个项目似乎都是死项目(至少对于Windows而言)。

不久前我对此做了很多研究,不幸的是,所有有用的免费USB+Windows+Java项目都死了。有一个商业和昂贵的(价格39.99美元不是每个开发者,而是每个软件出售的副本!)库可能会工作,虽然我没有这方面的经验;我们必须为USB驱动程序构建我们自己的自定义C包装,并通过JNI与它们通信。

libusb-win32要求您安装通用驱动程序,这样您就可以使用USB设备。我不确定是否有可能对USB设备进行无驱动程序访问,除非该设备属于几个标准类别之一(特别是存储和HID)


有一种可能对你有用的方法。不过,我自己还没有使用过它。

最快、最简单的方法是破解一些本机代码:) 我为HID设备编写了一个小包装器,它使我的Java应用程序能够从CalComp数字化仪读取数据,因此它肯定是可行的,也不太难。糟糕的是,我的作品仍然是我前雇主拥有的专有代码,因此出于法律原因,我还不能将其作为开源发布


好的是,您可以从Microsoft DDK的HID示例代码中获得一个快速的开始:)

通过java在Windows和USB设备之间进行通信。


举一个飞思卡尔微控制器的例子

我刚刚在Windows上的“[…]发现了这个问题,你不能只列出连接的设备并开始与它们对话,这就是Java USB API的作用。”我不完全理解他的评论,但听起来相当令人沮丧:(难道不是所有USB设备都附带车载驱动程序,当您插入设备时,这些驱动程序会自动安装吗?或者这只是针对“标准”设备吗?是否至少可以使用Java与“标准”设备进行通信而无需驱动程序?不,车载驱动程序是一个例外。标准设备,如存储器和HID(键盘、鼠标等)可能与上面提到的libusb-win32一起使用。Windows包含标准驱动程序。我一直在寻找一种简单的方式与自定义USB设备交互,而不需要模拟通信端口,感谢JCommUSB库之类的书也死了。域名正在出售中。