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