我想制作一个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