/ Linuxからハードドライブ情報を引き出すための/ Javaコード - java、c ++、c、linux、hard-drive

Linuxからハードドライブ情報を引き出すためのJavaコード - java、c ++、c、linux、hard-drive

私は最近、プログラムを使用して、複数のハードドライブからハードドライブ情報(シリアル、メーカー、タイプなど)を監視します。私の初期の研究では、これはC#コードを使用して簡単に実行でき、そのようなテストプログラムを作成したことがわかりました。残念ながら、私はLinux OSを使用する必要があります。これは、C#がテーブルから外れていることを意味します。

誰かが知っていれば私は興味があった、または私を指すことができるJava / C / C ++のアプリケーションを開発する正しい方向で、同じ効果を得ることができます。 Javaを使用する場合、JNIを使​​用する必要があり、その時点でC / C ++を使用する必要があることはわかります。

ありがとう。

回答:

回答№1は2

必要な正確な情報に応じて、JNIを使​​用する必要はありません。

Linuxは、ハードウェアに関する多くの情報を sysfs そして procfs 仮想ファイルシステム。たとえば、/ sys / block / sda / device / modelにある最初のディスクのハードディスクモデルは、他のファイルと同様にJavaで読み込むことができます。

さらに、あなたは fdisk -l /dev/sda" andhdparm -I / dev / sdawhich both provide quite a bit of information. You can call these usingRuntime.exec() `を呼び出し、出力を解析します。


回答№2の場合は1

私はあなたの人生を楽にするJavaライブラリは認識していませんが、異なるOSをサポートするOSに依存しないソリューションを実装したい場合は、 java.lang.Runtime 外部プロセスを実行することができます。 必要な情報を取得するための(CLI)コマンドを定義する各OS用のマップを維持することができます。 JNIを使​​用して多数のネイティブコールを実装する方が簡単かもしれません。

Process p = Runtime.getRuntime().exec("df -h");
p.waitFor();

InputStream is = p.getInputStream();

/* work with command line output... */

私はそれが完璧な解決策ではないことを知っていますが、あなたはそれを見てみたいかもしれません。