나는 cmd 또는 터미널을 통해 하드 디스크의 시리얼을 얻을 자바 프로그램을 만들려고합니다. 나는 두 OS (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();'? –
윈도우에서 윈도우 8.1을 반환하고 centOS (리눅스)에서 리눅스를 반환 – askManiac
리눅스 OS에서, 나는 의미했다. 그게 당신에게 문제가되는 거 맞죠? –