1

javaでUSBフラッシュドライブの製造元のシリアル番号を取得するにはどうすればよいですか?

私はこれを見ます

USB フラッシュ ドライブの製造元のシリアル番号を取得する方法は?

しかし、それは私を助けません。

4

2 に答える 2

2

複数のプラットフォームで機能する純粋な Java ソリューションはないと思います。

おそらく、外部コマンドの出力を「スクレイピング」する必要があります。(または、彼らが何をしているかを把握し、それをネイティブ コード ライブラリに複製します ...)

Linux の場合:

  • 「lsusb」コマンドの出力には、シリアル番号が含まれています。(マニュアルのエントリを確認してください。)

Windows の場合:

  • 「 usp64」および「USBDeview」と呼ばれるサードパーティ コマンドがこれを行います。

  • どうやら、使用wmicしてシリアル番号を取得できますが、動作させるには Microsoft の修正を適用する必要がある場合があります


@FoggyDay は、これをサポートしていると思われるいくつかのサードパーティ ライブラリを見つけました。

  • jUSBは明らかに GNU/Linux でのみ利用可能です。

  • usb4javaは、より幅広いプラットフォームをサポートしています。

  • どちらもプラットフォーム固有のネイティブ ライブラリに依存します。


使用を示唆するコメントFiles.getFileStore(path).getAttribute("volume:vsn")は間違っていると思います。Java ソース コードは、製造元が提供するシリアル番号ではなく、Windows によって割り当てられたボリューム シリアル番号を返すことを意味します。関連するコードはこちらです。

于 2014-08-17T03:28:27.740 に答える
0

jUSBライブラリを使用すると、これを usb.core.Configuration から読み取ることができます

usb4java - 別の新しい Java ライブラリ - おそらく同じものをサポートしています。

于 2014-08-17T03:51:26.637 に答える