我想製作一個java程序,它將通過cmd或終端的硬盤的序列。我試圖在操作系統(Windows,Linux)上。我遇到了Linux的問題,它會返回一個空格,當我在終端中鍵入hdparm -I /dev/sda | grep Serial
它顯示硬盤的序列號。java越來越硬盤序列
問題如何獲取或顯示序列號。
這裏是我的代碼:
private static String OS= System.getProperty("os.name").toLowerCase();
private static String system;
private static String serial;
private void getVol(String drive)
{
String query=new String();
if(isWindows())
{
query="cmd /c"+" vol "+drive+":";
}
else if(isUnix())
{
query="hdparm -I /dev/sda | grep Serial";
}
try
{
Runtime rt=Runtime.getRuntime();
InputStream is=rt.exec(query).getInputStream();
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String line;
if(isWindows())
{
br.readLine();
line=br.readLine();
line=line.substring(line.lastIndexOf(" ")+1);
serial=line;
}
else if(isUnix())
{
line=br.readLine();
serial=line;
}
}catch(IOException ex)
{
ex.printStackTrace();
}
}
private static boolean isWindows() {
return (OS.indexOf("win") >= 0);
}
private static boolean isUnix()
{
return (OS.indexOf("nux") >= 0);
}
public static void main(String args[])
{
MainClass f=new MainClass();
f.getVol("C");
System.out.println(serial);
}
你從'系統獲得什麼樣的價值。 。的getProperty( 「os.name」)toLowerCase();'? – 2014-09-01 06:06:35
它在windows中返回windows 8.1並且在centOS(linux)中返回linux – askManiac 2014-09-01 06:07:57
在你的Linux操作系統上,我的意思是。那是給你的問題,對吧? – 2014-09-01 06:10:16