在java下能访问USB设备,通过eclipse编译提示Properties file javax.usb.properties not found。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java下能访问USB设备,通过eclipse编译提示Properties file javax.usb.properties not found。相关的知识,希望对你有一定的参考价值。

import java.util.*;
import javax.usb.*;
public class tusb
public static void main(String[] args) throws UsbException
UsbServices services = UsbHostManager.getUsbServices( );

UsbHub root = services.getRootUsbHub( );
listDevices(root);

@SuppressWarnings("unchecked")
public static void listDevices(UsbHub hub)
List devices = hub.getAttachedUsbDevices( );
Iterator iterator = devices.iterator( );
while (iterator.hasNext( ))
UsbDevice device = (UsbDevice) iterator.next( );
System.out.println(device);
if (device.isUsbHub( ))
listDevices((UsbHub) device);



放到源文件的ROOT或项目的目录,试试追问

我把文件放到项目目录的bin文件下可以了,谢谢

追答

放到源文件的ROOT,然后eclipse编译时,会一块拷贝到bin目录的。

参考技术A 查一查这个包javax.usb追问

我已经将包导入了,而且也将javax.usb.properties 放到jre/lib的目录下了,但是还是not found

如何在java中访问USB端口[关闭]

【中文标题】如何在java中访问USB端口[关闭]【英文标题】:How to access USB ports in java [closed] 【发布时间】:2011-01-08 10:54:59 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

System.IO.Ports 用于串行通信,除非 OP 暗示串行到 USB 接口?! 同意 -- System.IO.Ports 没有 USB 接口,仅用于 Com 端口。 如果您的 USB 设备暴露在 COM 端口上,那么您可以使用 System.IO.Ports。 泰勒:你试过了吗?它真的有效吗? 是的,我有一个每天都在使用的应用程序。 USB 设备是磁条卡的编码器。【参考方案2】:

查看jUSB 或usb4java 库。

【讨论】:

Java-USB 仅适用于 Linux。如果这就是您所需要的,它可能会成功,尽管它似乎有一段时间没有更新。【参考方案3】:

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

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

【讨论】:

usb4java 怎么样?似乎是一个不错的选择。我与这个发展无关。【参考方案4】:

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

【讨论】:

如果您只想在代码中使用它们的 API(并且您拥有非 LGPL 许可证),那么与 LGPL 库的链接应该不是问题。 GPL 许可库是 copyleft 许可,强制您的代码许可也为 GPL 许可,无论您使用什么许可。【参考方案5】:

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

见:

http://usb4java.org/

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

【讨论】:

【参考方案6】:

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

例子:

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

/Volumes/Drive/file.whatever

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

【讨论】:

只能访问驱动器。但是还有更多的 USB 设备

以上是关于在java下能访问USB设备,通过eclipse编译提示Properties file javax.usb.properties not found。的主要内容,如果未能解决你的问题,请参考以下文章

如何在java中访问USB端口[关闭]

LeJOS下eclipse通过USB连接EV3

在云端开发,但通过远程桌面通过 USB 在本地设备上调试 Android 应用程序

将 raspbian wheezy USB 驱动程序 ch341.c 编译为 ch341.ko

从 USB 连接的 Android 移动设备访问 PC 的本地主机

将 USB 设备连接到 Android 模拟器?