All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sun.enterprise.util.OS Maven / Gradle / Ivy

/*
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 *
 * Copyright (c) 1997-2011 Oracle and/or its affiliates. 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_1_1.html
 * or packager/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 packager/legal/LICENSE.txt.
 *
 * GPL Classpath Exception:
 * Oracle designates this particular file as subject to the "Classpath"
 * exception as provided by Oracle in the GPL Version 2 section of the License
 * file that accompanied this code.
 *
 * Modifications:
 * If applicable, add the following below the License Header, with the fields
 * enclosed by brackets [] replaced by your own identifying information:
 * "Portions Copyright [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
 */

package com.sun.enterprise.util;

import java.io.*;
import java.util.Locale;

/**
 *
 * @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();
    }

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

    public static boolean isAix()
    {
        return isName("AIX");
    }
    
    ///////////////////////////////////////////////////////////////////////////
    
    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(Locale.getDefault());
        name= name.toLowerCase(Locale.getDefault());
        
        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(Locale.getDefault());
        name	= name.toLowerCase(Locale.getDefault());
        
        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());
        System.out.println("isAix() returned: "             + isAix());
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy