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