如何在java中检索USB闪存驱动器的制造商序列号?
我看看这个
但这对我没有帮助。
我认为没有适用于多个平台的纯 Java 解决方案。
您可能需要求助于“抓取”外部命令的输出。(或者弄清楚他们在做什么,并将其复制到本机代码库中......)
在 Linux 上:
在 Windows 上:
名为“usp64”和“USBDeview”的第三方命令执行此操作:请参阅http://ashfaqshinwary.wordpress.com/tag/how-to-find-usb-serial-number-from-windows/。
显然,您可以wmic
用来获取序列号,但您可能需要应用 Microsoft 修复程序才能使其工作:https ://superuser.com/questions/600394/get-usb-key-manufacturer-serial-number
@FoggyDay 找到了几个据称支持此功能的 3rd-party 库:
我认为建议使用的评论Files.getFileStore(path).getAttribute("volume:vsn")
是不正确的。Java 源代码意味着返回的是由 Windows 分配的卷序列号,而不是制造商提供的序列号。相关代码在这里。
jUSB库允许您从usb.core.Configuration读取它。
usb4java - 另一个更新的 Java 库 - 可能也支持相同的。