2014-02-07 39 views
1

下午好,我不知道用Linux操作系統使用java代碼找到硬盤和matherboard序列號的正確方法是什麼。在java操作系統下獲取主板和硬盤的ID?

使用

Process p = Runtime.getRuntime() exec ("hdparm-I/dev/sda | grep Serial") 

命令,。要獲取硬盤,但該命令未執行。

可以幫我嗎?謝謝你的問候!

+0

您在'getRuntime()exec'中忘記了一個'.',並且最後還是';'。 –

+0

這可能不值得付出努力:一個有動力的黑客可以修補他的內核來僞造這些信息..... –

回答

1

如果你想從Java執行一個shell管道,你必須明確地調用shell(即bash)並將它傳遞給要執行的命令。除非你告訴它,否則Runtime#exec()不會調用shell。

Process p = Runtime.getRuntime().exec("/bin/bash -c\"hdparm -I /dev/sda | grep Serial\""); 
0

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); 
相關問題