/openfire/src/plugins/nodejs/src/java/org/jitsi/util/OSUtils.java
Java | 188 lines | 129 code | 24 blank | 35 comment | 30 complexity | 82f6edf62ab0281f167e4963e7308b05 MD5 | raw file
Possible License(s): MIT
- /*
- * Jitsi, the OpenSource Java VoIP and Instant Messaging client.
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
- package org.jitsi.util;
- /**
- * Utility fields for OS detection.
- *
- * @author Sebastien Vincent
- * @author Lubomir Marinov
- */
- public class OSUtils
- {
- /** <tt>true</tt> if architecture is 32 bit. */
- public static final boolean IS_32_BIT;
- /** <tt>true</tt> if architecture is 64 bit. */
- public static final boolean IS_64_BIT;
- /** <tt>true</tt> if OS is Android */
- public static final boolean IS_ANDROID;
- /** <tt>true</tt> if OS is Linux. */
- public static final boolean IS_LINUX;
- /** <tt>true</tt> if OS is Linux 32-bit. */
- public static final boolean IS_LINUX32;
- /** <tt>true</tt> if OS is Linux 64-bit. */
- public static final boolean IS_LINUX64;
- /** <tt>true</tt> if OS is MacOSX. */
- public static final boolean IS_MAC;
- /** <tt>true</tt> if OS is MacOSX 32-bit. */
- public static final boolean IS_MAC32;
- /** <tt>true</tt> if OS is MacOSX 64-bit. */
- public static final boolean IS_MAC64;
- /** <tt>true</tt> if OS is Windows. */
- public static final boolean IS_WINDOWS;
- /** <tt>true</tt> if OS is Windows 32-bit. */
- public static final boolean IS_WINDOWS32;
- /** <tt>true</tt> if OS is Windows 64-bit. */
- public static final boolean IS_WINDOWS64;
- /** <tt>true</tt> if OS is Windows Vista. */
- public static final boolean IS_WINDOWS_VISTA;
- /** <tt>true</tt> if OS is Windows 7. */
- public static final boolean IS_WINDOWS_7;
- /** <tt>true</tt> if OS is Windows 8. */
- public static final boolean IS_WINDOWS_8;
- /** <tt>true</tt> if OS is FreeBSD. */
- public static final boolean IS_FREEBSD;
- static
- {
- // OS
- String osName = System.getProperty("os.name");
- if (osName == null)
- {
- IS_ANDROID = false;
- IS_LINUX = false;
- IS_MAC = false;
- IS_WINDOWS = false;
- IS_WINDOWS_VISTA = false;
- IS_WINDOWS_7 = false;
- IS_WINDOWS_8 = false;
- IS_FREEBSD = false;
- }
- else if (osName.startsWith("Linux"))
- {
- String javaVmName = System.getProperty("java.vm.name");
- if ((javaVmName != null) && javaVmName.equalsIgnoreCase("Dalvik"))
- {
- IS_ANDROID = true;
- IS_LINUX = false;
- }
- else
- {
- IS_ANDROID = false;
- IS_LINUX = true;
- }
- IS_MAC = false;
- IS_WINDOWS = false;
- IS_WINDOWS_VISTA = false;
- IS_WINDOWS_7 = false;
- IS_WINDOWS_8 = false;
- IS_FREEBSD = false;
- }
- else if (osName.startsWith("Mac"))
- {
- IS_ANDROID = false;
- IS_LINUX = false;
- IS_MAC = true;
- IS_WINDOWS = false;
- IS_WINDOWS_VISTA = false;
- IS_WINDOWS_7 = false;
- IS_WINDOWS_8 = false;
- IS_FREEBSD = false;
- }
- else if (osName.startsWith("Windows"))
- {
- IS_ANDROID = false;
- IS_LINUX = false;
- IS_MAC = false;
- IS_WINDOWS = true;
- IS_WINDOWS_VISTA = (osName.indexOf("Vista") != -1);
- IS_WINDOWS_7 = (osName.indexOf("7") != -1);
- IS_WINDOWS_8 = (osName.indexOf("8") != -1);
- IS_FREEBSD = false;
- }
- else if (osName.startsWith("FreeBSD"))
- {
- IS_ANDROID = false;
- IS_LINUX = false;
- IS_MAC = false;
- IS_WINDOWS = false;
- IS_WINDOWS_VISTA = false;
- IS_WINDOWS_7 = false;
- IS_WINDOWS_8 = false;
- IS_FREEBSD = true;
- }
- else
- {
- IS_ANDROID = false;
- IS_LINUX = false;
- IS_MAC = false;
- IS_WINDOWS = false;
- IS_WINDOWS_VISTA = false;
- IS_WINDOWS_7 = false;
- IS_WINDOWS_8 = false;
- IS_FREEBSD = false;
- }
- // arch i.e. x86, amd64
- String osArch = System.getProperty("sun.arch.data.model");
- if(osArch == null)
- {
- IS_32_BIT = true;
- IS_64_BIT = false;
- }
- else if (osArch.indexOf("32") != -1)
- {
- IS_32_BIT = true;
- IS_64_BIT = false;
- }
- else if (osArch.indexOf("64") != -1)
- {
- IS_32_BIT = false;
- IS_64_BIT = true;
- }
- else
- {
- IS_32_BIT = false;
- IS_64_BIT = false;
- }
- // OS && arch
- IS_LINUX32 = IS_LINUX && IS_32_BIT;
- IS_LINUX64 = IS_LINUX && IS_64_BIT;
- IS_MAC32 = IS_MAC && IS_32_BIT;
- IS_MAC64 = IS_MAC && IS_64_BIT;
- IS_WINDOWS32 = IS_WINDOWS && IS_32_BIT;
- IS_WINDOWS64 = IS_WINDOWS && IS_64_BIT;
- }
- /**
- * Allows the extending of the <tt>OSUtils</tt> class but disallows
- * initializing non-extended <tt>OSUtils</tt> instances.
- */
- protected OSUtils()
- {
- }
- }