Java: Как определить тип и версию ОС
Недавно возник вопрос, как в Java получить тип и версию ОС. Оказалось, что это вовсе не сложно. Достаточно воспользоваться методом System.getProperty
. Если данному методу передать строковое значение “os.name”, то мы получим название ОС. Если же передать строковое значение вида: os.version
, то мы получим версию ОС. Итак, на практике все это будет выглядеть примерно так:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class MainApp {
/**
* @param args
*/
public static void main(String[] args) {
if(isWindows()){
System.out.println("This is Windows");
System.out.println("It's version is: " + getOSVerion());
}else if(isMac()){
System.out.println("This is Macintosh");
System.out.println("It's version is: " + getOSVerion());
}else if(isUnix ()){
System.out.println("This is Unix or Linux OS");
System.out.println("It's version is: " + getOSVerion());
}else{
System.out.println("This is unknown OS");
}
System.out.println("Version: " + getOSVerion());
}
public static boolean isWindows(){
String os = System.getProperty("os.name").toLowerCase();
//windows
return (os.indexOf( "win" ) >= 0);
}
public static boolean isMac(){
String os = System.getProperty("os.name").toLowerCase();
//Mac
return (os.indexOf( "mac" ) >= 0);
}
public static boolean isUnix (){
String os = System.getProperty("os.name").toLowerCase();
//linux or unix
return (os.indexOf( "nix") >=0 || os.indexOf( "nux") >=0);
}
public static String getOSVerion() {
String os = System.getProperty("os.version");
return os;
}
}
Более подробную информацию о System.getProperty() можно почитать в Java Doc,
а с более подробной спецификацией ОС и архитектур можно ознакомиться тут.