OS.java Source code

Java tutorial

Introduction

Here is the source code for OS.java

Source

/*
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 *
 * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
 *
 * The contents of this file are subject to the terms of either the GNU
 * General Public License Version 2 only ("GPL") or the Common Development
 * and Distribution License("CDDL") (collectively, the "License").  You
 * may not use this file except in compliance with the License. You can obtain
 * a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
 * or glassfish/bootstrap/legal/LICENSE.txt.  See the License for the specific
 * language governing permissions and limitations under the License.
 *
 * When distributing the software, include this License Header Notice in each
 * file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
 * Sun designates this particular file as subject to the "Classpath" exception
 * as provided by Sun in the GPL Version 2 section of the License file that
 * accompanied this code.  If applicable, add the following below the License
 * Header, with the fields enclosed by brackets [] replaced by your own
 * identifying information: "Portions Copyrighted [year]
 * [name of copyright owner]"
 *
 * Contributor(s):
 *
 * If you wish your version of this file to be governed by only the CDDL or
 * only the GPL Version 2, indicate your decision by adding "[Contributor]
 * elects to include this software in this distribution under the [CDDL or GPL
 * Version 2] license."  If you don't indicate a single choice of license, a
 * recipient has the option to distribute your version of this file under
 * either the CDDL, the GPL Version 2 or to extend the choice of license to
 * its licensees as provided above.  However, if you add GPL Version 2 code
 * and therefore, elected the GPL Version 2 license, then the option applies
 * only if the new code is made subject to such option by the copyright
 * holder.
 */

/*
 * OS.java
 *
 * Created on December 8, 2001, 5:48 PM
 */

import java.io.File;

/**
 *
 * @author  bnevins
 * @version
 */
public class OS {
    private OS() {
    }

    ///////////////////////////////////////////////////////////////////////////

    public static boolean isWindows() {
        return File.separatorChar == '\\';
    }

    ///////////////////////////////////////////////////////////////////////////

    public static boolean isUNIX() {
        return File.separatorChar == '/';
    }

    ///////////////////////////////////////////////////////////////////////////

    public static boolean isUnix() {
        // convenience method...
        return isUNIX();
    }

    ///////////////////////////////////////////////////////////////////////////

    public static boolean isSun() {
        return isName("sun");
    }

    ///////////////////////////////////////////////////////////////////////////

    public static boolean isSolaris10() {
        return isSun() && isVersion("5.10");
    }

    ///////////////////////////////////////////////////////////////////////////

    public static boolean isSunSparc() {
        return isName("sun") && isArch("sparc");
    }
    ///////////////////////////////////////////////////////////////////////////

    public static boolean isSunX86() {
        return isName("sun") && isArch("x86");
    }

    ///////////////////////////////////////////////////////////////////////////

    public static boolean isLinux() {
        return isName("linux");
    }

    ///////////////////////////////////////////////////////////////////////////

    public static boolean isDarwin() {
        return isName("Mac OS X");
    }

    ///////////////////////////////////////////////////////////////////////////

    public static boolean isWindowsForSure() {
        return isName("windows") && isWindows();
    }
    ///////////////////////////////////////////////////////////////////////////
    //  There are 10 known Linux versions!
    ///////////////////////////////////////////////////////////////////////////

    public static boolean isDebianLinux() {
        return isLinux() && new File("/etc/debian_version").exists();
    }

    ///////////////////////////////////////////////////////////////////////////

    public static boolean isFedoraLinux() {
        return isLinux() && new File("/etc/fedora-release").exists();
    }

    ///////////////////////////////////////////////////////////////////////////

    public static boolean isGentooLinux() {
        return isLinux() && new File("/etc/gentoo-release").exists();
    }

    ///////////////////////////////////////////////////////////////////////////

    public static boolean isKnoppixLinux() {
        return isLinux() && new File("/etc/knoppix_version").exists();
    }

    ///////////////////////////////////////////////////////////////////////////

    public static boolean isMandrakeLinux() {
        return isLinux() && new File("/etc/mandrake-release").exists();
    }

    ///////////////////////////////////////////////////////////////////////////

    public static boolean isMandrivaLinux() {
        return isLinux() && new File("/etc/mandriva-release").exists();
    }

    ///////////////////////////////////////////////////////////////////////////

    public static boolean isRedHatLinux() {
        return isLinux() && new File("/etc/redhat-release").exists();
    }

    ///////////////////////////////////////////////////////////////////////////

    public static boolean isSlackwareLinux() {
        return isLinux() && new File("/etc/slackware-version").exists();
    }

    ///////////////////////////////////////////////////////////////////////////

    public static boolean isSuSELinux() {
        return isLinux() && new File("/etc/SuSE-release").exists();
    }

    ///////////////////////////////////////////////////////////////////////////

    public static boolean isUbuntuLinux() {
        return isLinux() && new File("/etc/lsb-release").exists();
    }

    ///////////////////////////////////////////////////////////////////////////

    private static boolean isArch(String name) {
        String archname = System.getProperty("os.arch");

        if (archname == null || archname.length() <= 0)
            return false;

        // case insensitive compare...
        archname = archname.toLowerCase();
        name = name.toLowerCase();

        if (archname.indexOf(name) >= 0)
            return true;

        return false;
    }

    ///////////////////////////////////////////////////////////////////////////

    private static boolean isName(String name) {
        String osname = System.getProperty("os.name");

        if (osname == null || osname.length() <= 0)
            return false;

        // case insensitive compare...
        osname = osname.toLowerCase();
        name = name.toLowerCase();

        if (osname.indexOf(name) >= 0)
            return true;

        return false;
    }

    ///////////////////////////////////////////////////////////////////////////

    private static boolean isVersion(String version) {
        String osversion = System.getProperty("os.version");

        if (osversion == null || osversion.length() <= 0 || version == null || version.length() <= 0)
            return false;

        if (osversion.equals(version))
            return true;

        return false;
    }

    ///////////////////////////////////////////////////////////////////////////

    public static final String WINDOWS_BATCH_FILE_EXTENSION = ".bat";

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        System.out.println("os.version = " + System.getProperty("os.version"));
        System.out.println("os.name = " + System.getProperty("os.name"));
        System.out.println("os.arch = " + System.getProperty("os.arch"));
        System.out.println("isUNIX() returned: " + isUNIX());
        System.out.println("isWindows() returned: " + isWindows());
        System.out.println("isWindowsForSure() returned: " + isWindowsForSure());
        System.out.println("isSun() returned: " + isSun());
        System.out.println("isLinux() returned: " + isLinux());
        System.out.println("isDebianLinux() returned: " + isDebianLinux());
        System.out.println("isFedoraLinux() returned: " + isFedoraLinux());
        System.out.println("isGentooLinux() returned: " + isGentooLinux());
        System.out.println("isKnoppixLinux() returned: " + isKnoppixLinux());
        System.out.println("isMandrakeLinux() returned: " + isMandrakeLinux());
        System.out.println("isMandrivaLinux() returned: " + isMandrivaLinux());
        System.out.println("isRedHatLinux() returned: " + isRedHatLinux());
        System.out.println("isSlackwareLinux() returned: " + isSlackwareLinux());
        System.out.println("isSuSELinux() returned: " + isSuSELinux());
        System.out.println("isUbuntuLinux() returned: " + isUbuntuLinux());
        System.out.println("isSunX86() returned: " + isSunX86());
        System.out.println("isSunSparc() returned: " + isSunSparc());
        System.out.println("isDarwin() returned: " + isDarwin());
        System.out.println("isSolaris10() returned: " + isSolaris10());
    }
}