Как я могу получить серийный номер производителя USB-накопителя в java?
я смотрю на это
Как получить серийный номер производителя USB-накопителя водить?
но мне это не помогает.
Как я могу получить серийный номер производителя USB-накопителя в 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-серийный-номер
@FoggyDay нашел пару сторонних библиотек, которые предположительно поддерживают это:
jUSB, очевидно, доступен только для GNU/Linux.
usb4java поддерживает более широкий спектр платформ.
Оба зависят от собственных библиотек платформы.
Комментарий, предлагающий использовать Files.getFileStore(path).getAttribute("volume:vsn")
, я думаю, некорректен. Исходный код Java подразумевает, что он возвращает серийный номер тома, назначенный Windows, а не серийный номер, предоставленный производителем. Соответствующий код: здесь.
Библиотека jUSB позволяет читать это с usb.core.Configuration.
usb4java — другая, более новая библиотека Java — вероятно, также поддерживает то же самое.
Files.getFileStore(path).getAttribute("volume:vsn")
. Я не знаю, как получить его в других операционных системах. - person VGR   schedule 17.08.2014