下午好,我不知道用Linux操作系統使用java代碼找到硬盤和matherboard序列號的正確方法是什麼。在java操作系統下獲取主板和硬盤的ID?
使用
Process p = Runtime.getRuntime() exec ("hdparm-I/dev/sda | grep Serial")
命令,。要獲取硬盤,但該命令未執行。
可以幫我嗎?謝謝你的問候!
下午好,我不知道用Linux操作系統使用java代碼找到硬盤和matherboard序列號的正確方法是什麼。在java操作系統下獲取主板和硬盤的ID?
使用
Process p = Runtime.getRuntime() exec ("hdparm-I/dev/sda | grep Serial")
命令,。要獲取硬盤,但該命令未執行。
可以幫我嗎?謝謝你的問候!
如果你想從Java執行一個shell管道,你必須明確地調用shell(即bash)並將它傳遞給要執行的命令。除非你告訴它,否則Runtime#exec()
不會調用shell。
Process p = Runtime.getRuntime().exec("/bin/bash -c\"hdparm -I /dev/sda | grep Serial\"");
Matherboard
工藝過程=調用Runtime.getRuntime()EXEC(新的String [] { 「WMIC」, 「BIOS」, 「獲得」, 「SERIALNUMBER」})。
process.getOutputStream().close();
Scanner sc = new Scanner(process.getInputStream());
String property = sc.next();
String serial = sc.next();
System.out.println(property + ": " + serial);
硬盤來
工藝過程=調用Runtime.getRuntime()EXEC(新的String [] { 「WMIC」, 「盤驅動」, 「獲得」, 「SERIALNUMBER」})。
process.getOutputStream().close();
Scanner sc = new Scanner(process.getInputStream());
String property = sc.next();
String serial = sc.next();
System.out.println(property + ": " + serial);
您在'getRuntime()exec'中忘記了一個'.',並且最後還是';'。 –
這可能不值得付出努力:一個有動力的黑客可以修補他的內核來僞造這些信息..... –