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

jlibs.core.lang.OS Maven / Gradle / Ivy

There is a newer version: 3.0.1
Show newest version
/**
 * Copyright 2015 Santhosh Kumar Tekuri
 *
 * The JLibs authors license this file to you under the Apache License,
 * version 2.0 (the "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at:
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */

package jlibs.core.lang;

/**
 * This enum contains values for each type of OS.
 * 

* To get the current OS: *

 * OS myos = OS.{@link #get()};
 * System.out.println(myos);
 * 
* To check whether your OS is windows or unix; *
 * OS myos = OS.get();
 * System.out.println("isWindows: "+myos.{@link #isWindows()});
 * System.out.println("isUnix: "+myos.{@link #isUnix()});
 * 
* * When your OS is not recognized, {@code OS.get()} returns OS.{@link #OTHER} *

* There is another usefult method which might be required rarely; *

 * String osName = System.getProperty("os.name");
 * OS os = OS.{@link #get(String) get}(osName);
 * 
* This might be handy, if your app is distributed and and want to find out the os of remote JVM process * * @author Santhosh Kumar T */ public enum OS{ WINDOWS_NT("Windows NT"), WINDOWS_95("Windows 95"), WINDOWS_98("Windows 98"), WINDOWS_2000("Windows 2000"), WINDOWS_VISTA("Windows Vista"), WINDOWS_7("Windows 7"), // add new windows versions here WINDOWS_OTHER("Windows"), SOLARIS("Solaris"), LINUX("Linux"), HP_UX("HP-UX"), IBM_AIX("AIX"), SGI_IRIX("Irix"), SUN_OS("SunOS"), COMPAQ_TRU64_UNIX("Digital UNIX"), MAC("Mac OS X", "Darwin"), FREEBSD("freebsd"), // add new unix versions here OS2("OS/2"), COMPAQ_OPEN_VMS("OpenVMS"), /** Unrecognized OS */ OTHER(""); private String names[]; private OS(String... names){ this.names = names; } /** @return true if this OS belongs to windows family */ public boolean isWindows(){ return ordinal()<=WINDOWS_OTHER.ordinal(); } /** @return true if this OS belongs to *nix family */ public boolean isUnix(){ return ordinal()>WINDOWS_OTHER.ordinal() && ordinal()System.getProperty("os.name")
* * @return OS for the specified {@code osName} */ public static OS get(String osName){ osName = osName.toLowerCase(); for(OS os: values()){ for(String name: os.names){ if(osName.contains(name.toLowerCase())) return os; } } throw new ImpossibleException(); } private static OS current; /** @return OS on which this JVM is running */ public static OS get(){ if(current==null) current = get(System.getProperty("os.name")); return current; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy