Wednesday, March 6, 2013

Java: Determine what OS are you running

Today I stumble into a problem in my code... I run the code from different OS types, and depending on the OS, I need to create/read files in/from different locations. Of course I thought of Google! I found this code example, that I just wanted to save and share (Big thanks to '', http://www.mkyong.com/java/how-to-detect-os-in-java-systemgetpropertyosname/)


public class OSValidator {

private static String OS = System.getProperty("os.name").toLowerCase();
private static String USER_HOME = System.getProperty("user.home");

public static void main(String[] args) {

System.out.println(OS);
getUserHome();

if (isWindows()) {
System.out.println("This is Windows");
} else if (isMac()) {
System.out.println("This is Mac");
} else if (isUnix()) {
System.out.println("This is Unix or Linux");
} else if (isSolaris()) {
System.out.println("This is Solaris");
} else {
System.out.println("Your OS is not support!!");
}
}

public static boolean isWindows() {
return (OS.indexOf("win") >= 0);
}

public static boolean isMac() {
return (OS.indexOf("mac") >= 0);
}

public static boolean isUnix() {
return (OS.indexOf("nix") >= 0 || OS.indexOf("nux") >= 0 || OS.indexOf("aix") > 0 );
}

public static boolean isSolaris() {
return (OS.indexOf("sunos") >= 0);
}
public static String getUserHome() {
return (USER_HOME+"/");
}

}