OperatingSystem.java Source code

Java tutorial

Introduction

Here is the source code for OperatingSystem.java

Source

/**
 * This file is distributed under the GPL
 * $Id: OperatingSystem.java 1869 2009-09-02 07:02:35Z scotta $
 */

//package net.bnubot.util;

import java.util.Properties;

/**
 * @author scotta
 */
public enum OperatingSystem {
    WINDOWS, OSX, LINUX, UNKNOWN;

    private static OperatingSystem initOS() {
        String osName = System.getProperty("os.name");
        if (osName.equals("Mac OS X"))
            return OSX;
        if (osName.startsWith("Windows "))
            return WINDOWS;
        if (osName.startsWith("Linux"))
            return LINUX;
        return UNKNOWN;
    }

    public static final OperatingSystem userOS = initOS();

    /**
     * @return user-displayable operating system version
     */
    public static String osVersion() {
        Properties p = System.getProperties();
        String osName = p.getProperty("os.name");
        String osVersion = p.getProperty("os.version");

        if ((osVersion != null) && (osVersion.length() != 0))
            osName += " " + osVersion;

        switch (userOS) {
        case OSX:
            if (osVersion.startsWith("10.0"))
                osName += " Cheetah";
            else if (osVersion.startsWith("10.1"))
                osName += " Puma";
            else if (osVersion.startsWith("10.2"))
                osName += " Jaguar";
            else if (osVersion.startsWith("10.3"))
                osName += " Panther";
            else if (osVersion.startsWith("10.4"))
                osName += " Tiger";
            else if (osVersion.startsWith("10.5"))
                osName += " Leopard";
            else if (osVersion.startsWith("10.6"))
                osName += " Snow Leopard";
            break;
        case WINDOWS:
            osName += " " + p.getProperty("sun.os.patch.level");
            break;
        }

        osName += " (" + p.getProperty("os.arch") + ")";
        return osName;
    }

    public static String javaVersion() {
        return "Java " + System.getProperties().getProperty("java.version");
    }
}