PageRenderTime 46ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/openfire/src/plugins/rayo/src/java/org/jitsi/util/OSUtils.java

https://bitbucket.org/belinskiy/openfire4v2
Java | 188 lines | 129 code | 24 blank | 35 comment | 30 complexity | 82f6edf62ab0281f167e4963e7308b05 MD5 | raw file
Possible License(s): MIT
  1. /*
  2. * Jitsi, the OpenSource Java VoIP and Instant Messaging client.
  3. *
  4. * Distributable under LGPL license.
  5. * See terms of license at gnu.org.
  6. */
  7. package org.jitsi.util;
  8. /**
  9. * Utility fields for OS detection.
  10. *
  11. * @author Sebastien Vincent
  12. * @author Lubomir Marinov
  13. */
  14. public class OSUtils
  15. {
  16. /** <tt>true</tt> if architecture is 32 bit. */
  17. public static final boolean IS_32_BIT;
  18. /** <tt>true</tt> if architecture is 64 bit. */
  19. public static final boolean IS_64_BIT;
  20. /** <tt>true</tt> if OS is Android */
  21. public static final boolean IS_ANDROID;
  22. /** <tt>true</tt> if OS is Linux. */
  23. public static final boolean IS_LINUX;
  24. /** <tt>true</tt> if OS is Linux 32-bit. */
  25. public static final boolean IS_LINUX32;
  26. /** <tt>true</tt> if OS is Linux 64-bit. */
  27. public static final boolean IS_LINUX64;
  28. /** <tt>true</tt> if OS is MacOSX. */
  29. public static final boolean IS_MAC;
  30. /** <tt>true</tt> if OS is MacOSX 32-bit. */
  31. public static final boolean IS_MAC32;
  32. /** <tt>true</tt> if OS is MacOSX 64-bit. */
  33. public static final boolean IS_MAC64;
  34. /** <tt>true</tt> if OS is Windows. */
  35. public static final boolean IS_WINDOWS;
  36. /** <tt>true</tt> if OS is Windows 32-bit. */
  37. public static final boolean IS_WINDOWS32;
  38. /** <tt>true</tt> if OS is Windows 64-bit. */
  39. public static final boolean IS_WINDOWS64;
  40. /** <tt>true</tt> if OS is Windows Vista. */
  41. public static final boolean IS_WINDOWS_VISTA;
  42. /** <tt>true</tt> if OS is Windows 7. */
  43. public static final boolean IS_WINDOWS_7;
  44. /** <tt>true</tt> if OS is Windows 8. */
  45. public static final boolean IS_WINDOWS_8;
  46. /** <tt>true</tt> if OS is FreeBSD. */
  47. public static final boolean IS_FREEBSD;
  48. static
  49. {
  50. // OS
  51. String osName = System.getProperty("os.name");
  52. if (osName == null)
  53. {
  54. IS_ANDROID = false;
  55. IS_LINUX = false;
  56. IS_MAC = false;
  57. IS_WINDOWS = false;
  58. IS_WINDOWS_VISTA = false;
  59. IS_WINDOWS_7 = false;
  60. IS_WINDOWS_8 = false;
  61. IS_FREEBSD = false;
  62. }
  63. else if (osName.startsWith("Linux"))
  64. {
  65. String javaVmName = System.getProperty("java.vm.name");
  66. if ((javaVmName != null) && javaVmName.equalsIgnoreCase("Dalvik"))
  67. {
  68. IS_ANDROID = true;
  69. IS_LINUX = false;
  70. }
  71. else
  72. {
  73. IS_ANDROID = false;
  74. IS_LINUX = true;
  75. }
  76. IS_MAC = false;
  77. IS_WINDOWS = false;
  78. IS_WINDOWS_VISTA = false;
  79. IS_WINDOWS_7 = false;
  80. IS_WINDOWS_8 = false;
  81. IS_FREEBSD = false;
  82. }
  83. else if (osName.startsWith("Mac"))
  84. {
  85. IS_ANDROID = false;
  86. IS_LINUX = false;
  87. IS_MAC = true;
  88. IS_WINDOWS = false;
  89. IS_WINDOWS_VISTA = false;
  90. IS_WINDOWS_7 = false;
  91. IS_WINDOWS_8 = false;
  92. IS_FREEBSD = false;
  93. }
  94. else if (osName.startsWith("Windows"))
  95. {
  96. IS_ANDROID = false;
  97. IS_LINUX = false;
  98. IS_MAC = false;
  99. IS_WINDOWS = true;
  100. IS_WINDOWS_VISTA = (osName.indexOf("Vista") != -1);
  101. IS_WINDOWS_7 = (osName.indexOf("7") != -1);
  102. IS_WINDOWS_8 = (osName.indexOf("8") != -1);
  103. IS_FREEBSD = false;
  104. }
  105. else if (osName.startsWith("FreeBSD"))
  106. {
  107. IS_ANDROID = false;
  108. IS_LINUX = false;
  109. IS_MAC = false;
  110. IS_WINDOWS = false;
  111. IS_WINDOWS_VISTA = false;
  112. IS_WINDOWS_7 = false;
  113. IS_WINDOWS_8 = false;
  114. IS_FREEBSD = true;
  115. }
  116. else
  117. {
  118. IS_ANDROID = false;
  119. IS_LINUX = false;
  120. IS_MAC = false;
  121. IS_WINDOWS = false;
  122. IS_WINDOWS_VISTA = false;
  123. IS_WINDOWS_7 = false;
  124. IS_WINDOWS_8 = false;
  125. IS_FREEBSD = false;
  126. }
  127. // arch i.e. x86, amd64
  128. String osArch = System.getProperty("sun.arch.data.model");
  129. if(osArch == null)
  130. {
  131. IS_32_BIT = true;
  132. IS_64_BIT = false;
  133. }
  134. else if (osArch.indexOf("32") != -1)
  135. {
  136. IS_32_BIT = true;
  137. IS_64_BIT = false;
  138. }
  139. else if (osArch.indexOf("64") != -1)
  140. {
  141. IS_32_BIT = false;
  142. IS_64_BIT = true;
  143. }
  144. else
  145. {
  146. IS_32_BIT = false;
  147. IS_64_BIT = false;
  148. }
  149. // OS && arch
  150. IS_LINUX32 = IS_LINUX && IS_32_BIT;
  151. IS_LINUX64 = IS_LINUX && IS_64_BIT;
  152. IS_MAC32 = IS_MAC && IS_32_BIT;
  153. IS_MAC64 = IS_MAC && IS_64_BIT;
  154. IS_WINDOWS32 = IS_WINDOWS && IS_32_BIT;
  155. IS_WINDOWS64 = IS_WINDOWS && IS_64_BIT;
  156. }
  157. /**
  158. * Allows the extending of the <tt>OSUtils</tt> class but disallows
  159. * initializing non-extended <tt>OSUtils</tt> instances.
  160. */
  161. protected OSUtils()
  162. {
  163. }
  164. }