最近一段时间写一个授权的程序,需要获取很多信息来保证程序不能随意复制使用,必须经过授权才可以。

为了限制用户使用的操作系统,必须有统一的方法来获取才可以。

在JAVA中,通过System.getProperty("os.name")来获取,通过参考:http://lopica.sourceforge.net/os.html 来实现各操作系统的判断。

针对windows系统,这里不具体判断是那个版本,如果有需要,可以在判断出windows之后,继续判断,判断需要考虑java的版本,版本不同,结果也不一样。

下面上代码:

1.枚举类型:EPlatform

[java] view plaincopyprint?
  1. /**
  2. * 平台
  3. * @author isea533
  4. */
  5. public enum EPlatform {
  6. Any("any"),
  7. Linux("Linux"),
  8. Mac_OS("Mac OS"),
  9. Mac_OS_X("Mac OS X"),
  10. Windows("Windows"),
  11. OS2("OS/2"),
  12. Solaris("Solaris"),
  13. SunOS("SunOS"),
  14. MPEiX("MPE/iX"),
  15. HP_UX("HP-UX"),
  16. AIX("AIX"),
  17. OS390("OS/390"),
  18. FreeBSD("FreeBSD"),
  19. Irix("Irix"),
  20. Digital_Unix("Digital Unix"),
  21. NetWare_411("NetWare"),
  22. OSF1("OSF1"),
  23. OpenVMS("OpenVMS"),
  24. Others("Others");
  25. private EPlatform(String desc){
  26. this.description = desc;
  27. }
  28. public String toString(){
  29. return description;
  30. }
  31. private String description;
  32. }
/*** 平台* @author isea533*/
public enum EPlatform {Any("any"),Linux("Linux"),Mac_OS("Mac OS"),Mac_OS_X("Mac OS X"),Windows("Windows"),OS2("OS/2"),Solaris("Solaris"),SunOS("SunOS"),MPEiX("MPE/iX"),HP_UX("HP-UX"),AIX("AIX"),OS390("OS/390"),FreeBSD("FreeBSD"),Irix("Irix"),Digital_Unix("Digital Unix"),NetWare_411("NetWare"),OSF1("OSF1"),OpenVMS("OpenVMS"),Others("Others");private EPlatform(String desc){this.description = desc;}public String toString(){return description;}private String description;
}

2.操作系统类:OSinfo

[java] view plaincopyprint?
  1. /**
  2. * 操作系统类:
  3. * 获取System.getProperty("os.name")对应的操作系统
  4. * @author isea533
  5. */
  6. public class OSinfo {
  7. private static String OS = System.getProperty("os.name").toLowerCase();
  8. private static OSinfo _instance = new OSinfo();
  9. private EPlatform platform;
  10. private OSinfo(){}
  11. public static boolean isLinux(){
  12. return OS.indexOf("linux")>=0;
  13. }
  14. public static boolean isMacOS(){
  15. return OS.indexOf("mac")>=0&&OS.indexOf("os")>0&&OS.indexOf("x")<0;
  16. }
  17. public static boolean isMacOSX(){
  18. return OS.indexOf("mac")>=0&&OS.indexOf("os")>0&&OS.indexOf("x")>0;
  19. }
  20. public static boolean isWindows(){
  21. return OS.indexOf("windows")>=0;
  22. }
  23. public static boolean isOS2(){
  24. return OS.indexOf("os/2")>=0;
  25. }
  26. public static boolean isSolaris(){
  27. return OS.indexOf("solaris")>=0;
  28. }
  29. public static boolean isSunOS(){
  30. return OS.indexOf("sunos")>=0;
  31. }
  32. public static boolean isMPEiX(){
  33. return OS.indexOf("mpe/ix")>=0;
  34. }
  35. public static boolean isHPUX(){
  36. return OS.indexOf("hp-ux")>=0;
  37. }
  38. public static boolean isAix(){
  39. return OS.indexOf("aix")>=0;
  40. }
  41. public static boolean isOS390(){
  42. return OS.indexOf("os/390")>=0;
  43. }
  44. public static boolean isFreeBSD(){
  45. return OS.indexOf("freebsd")>=0;
  46. }
  47. public static boolean isIrix(){
  48. return OS.indexOf("irix")>=0;
  49. }
  50. public static boolean isDigitalUnix(){
  51. return OS.indexOf("digital")>=0&&OS.indexOf("unix")>0;
  52. }
  53. public static boolean isNetWare(){
  54. return OS.indexOf("netware")>=0;
  55. }
  56. public static boolean isOSF1(){
  57. return OS.indexOf("osf1")>=0;
  58. }
  59. public static boolean isOpenVMS(){
  60. return OS.indexOf("openvms")>=0;
  61. }
  62. /**
  63. * 获取操作系统名字
  64. * @return 操作系统名
  65. */
  66. public static EPlatform getOSname(){
  67. if(isAix()){
  68. _instance.platform = EPlatform.AIX;
  69. }else if (isDigitalUnix()) {
  70. _instance.platform = EPlatform.Digital_Unix;
  71. }else if (isFreeBSD()) {
  72. _instance.platform = EPlatform.FreeBSD;
  73. }else if (isHPUX()) {
  74. _instance.platform = EPlatform.HP_UX;
  75. }else if (isIrix()) {
  76. _instance.platform = EPlatform.Irix;
  77. }else if (isLinux()) {
  78. _instance.platform = EPlatform.Linux;
  79. }else if (isMacOS()) {
  80. _instance.platform = EPlatform.Mac_OS;
  81. }else if (isMacOSX()) {
  82. _instance.platform = EPlatform.Mac_OS_X;
  83. }else if (isMPEiX()) {
  84. _instance.platform = EPlatform.MPEiX;
  85. }else if (isNetWare()) {
  86. _instance.platform = EPlatform.NetWare_411;
  87. }else if (isOpenVMS()) {
  88. _instance.platform = EPlatform.OpenVMS;
  89. }else if (isOS2()) {
  90. _instance.platform = EPlatform.OS2;
  91. }else if (isOS390()) {
  92. _instance.platform = EPlatform.OS390;
  93. }else if (isOSF1()) {
  94. _instance.platform = EPlatform.OSF1;
  95. }else if (isSolaris()) {
  96. _instance.platform = EPlatform.Solaris;
  97. }else if (isSunOS()) {
  98. _instance.platform = EPlatform.SunOS;
  99. }else if (isWindows()) {
  100. _instance.platform = EPlatform.Windows;
  101. }else{
  102. _instance.platform = EPlatform.Others;
  103. }
  104. return _instance.platform;
  105. }
  106. /**
  107. * @param args
  108. */
  109. public static void main(String[] args) {
  110. System.out.println(OSinfo.getOSname());
  111. }
  112. }
/*** 操作系统类:* 获取System.getProperty("os.name")对应的操作系统* @author isea533*/
public class OSinfo {private static String OS = System.getProperty("os.name").toLowerCase();private static OSinfo _instance = new OSinfo();private EPlatform platform;private OSinfo(){}public static boolean isLinux(){return OS.indexOf("linux")>=0;}public static boolean isMacOS(){return OS.indexOf("mac")>=0&&OS.indexOf("os")>0&&OS.indexOf("x")<0;}public static boolean isMacOSX(){return OS.indexOf("mac")>=0&&OS.indexOf("os")>0&&OS.indexOf("x")>0;}public static boolean isWindows(){return OS.indexOf("windows")>=0;}public static boolean isOS2(){return OS.indexOf("os/2")>=0;}public static boolean isSolaris(){return OS.indexOf("solaris")>=0;}public static boolean isSunOS(){return OS.indexOf("sunos")>=0;}public static boolean isMPEiX(){return OS.indexOf("mpe/ix")>=0;}public static boolean isHPUX(){return OS.indexOf("hp-ux")>=0;}public static boolean isAix(){return OS.indexOf("aix")>=0;}public static boolean isOS390(){return OS.indexOf("os/390")>=0;}public static boolean isFreeBSD(){return OS.indexOf("freebsd")>=0;}public static boolean isIrix(){return OS.indexOf("irix")>=0;}public static boolean isDigitalUnix(){return OS.indexOf("digital")>=0&&OS.indexOf("unix")>0;}public static boolean isNetWare(){return OS.indexOf("netware")>=0;}public static boolean isOSF1(){return OS.indexOf("osf1")>=0;}public static boolean isOpenVMS(){return OS.indexOf("openvms")>=0;}/*** 获取操作系统名字* @return 操作系统名*/public static EPlatform getOSname(){if(isAix()){_instance.platform = EPlatform.AIX;}else if (isDigitalUnix()) {_instance.platform = EPlatform.Digital_Unix;}else if (isFreeBSD()) {_instance.platform = EPlatform.FreeBSD;}else if (isHPUX()) {_instance.platform = EPlatform.HP_UX;}else if (isIrix()) {_instance.platform = EPlatform.Irix;}else if (isLinux()) {_instance.platform = EPlatform.Linux;}else if (isMacOS()) {_instance.platform = EPlatform.Mac_OS;}else if (isMacOSX()) {_instance.platform = EPlatform.Mac_OS_X;}else if (isMPEiX()) {_instance.platform = EPlatform.MPEiX;}else if (isNetWare()) {_instance.platform = EPlatform.NetWare_411;}else if (isOpenVMS()) {_instance.platform = EPlatform.OpenVMS;}else if (isOS2()) {_instance.platform = EPlatform.OS2;}else if (isOS390()) {_instance.platform = EPlatform.OS390;}else if (isOSF1()) {_instance.platform = EPlatform.OSF1;}else if (isSolaris()) {_instance.platform = EPlatform.Solaris;}else if (isSunOS()) {_instance.platform = EPlatform.SunOS;}else if (isWindows()) {_instance.platform = EPlatform.Windows;}else{_instance.platform = EPlatform.Others;}return _instance.platform;}/*** @param args*/public static void main(String[] args) {System.out.println(OSinfo.getOSname());}}

我使用的Windows 7 识别出来:Windows ,如果大家使用别的操作系统,希望能把操作系统和结果在这里留言写下来。

如果结果错误,你可以使用下面的代码获取你的操作系统信息:

[java] view plaincopyprint?
  1. class WhatOS
  2. {
  3. public static void main( String args[] )
  4. {
  5. System.out.println( System.getProperty("os.name") );
  6. System.out.println( System.getProperty("os.version") );
  7. System.out.println( System.getProperty("os.arch") );
  8. }
  9. }

Java 判断操作系统类型(适用于各种操作系统)相关推荐

  1. java 判断网络类型_javaexcel判断类型

    1. java如何判断数据类型 给你一个封装好的方法,只要把excel中的cell放入就会返回对应的值,里面有类型检测 public static String getExcelCellValue(H ...

  2. java 判断文件类型是否是音频_用java流方式判断文件类型

    这个方法只能在有限的范围内有效.并不是万金油 比如 图片类型判断,音频文件格式判断,视频文件格式判断等这种肯定是2进制且专业性很强的文件类型判断. 下面给出完整版代码 首先是文件类型枚取 packag ...

  3. java 判断文件类型是否是音频_Android判断文件类型(视频、音频、图片等) | 学步园...

    MediaFile.java package com.jaycee.vplayer.util; import java.util.HashMap; import java.util.Iterator; ...

  4. JAVA判断各种类型数据是否为空(亲测)

    1.判断list是否为空(Map.Set同list) if(list != null && list.size() == 0){ }if(list != null && ...

  5. java 判断int类型为空

    int id = 10; if("0".equals(String.valueOf(id)) || "null".equals(String.valueOf(i ...

  6. Java判断浏览器类型

    /** * 判断浏览器类型是否是IE,是则返回true,不是返回false * ServletActionContext是struts2上下文对象 * @author 李英夫(2010-6-20 上午 ...

  7. java判断浏览器类型_判断浏览器类型

    一.判断是否为IE 以前判断是否IE浏览器用的是window.navigator.userAgent,跟踪这个信息,发现在开发环境,识别为IE10,但访问服务器则识别为IE11,但IE11的userA ...

  8. 用java判断三角形类型_判断三角形类型

    假期无聊,继续九度OJ刷题,每天几道题,强制编程人啊! 三角形判断的方法: 直角三角形:勾股定理 锐角和钝角三角形:余玄定理 题目描述:给定三角形的三条边,a,b,c.判断该三角形类型. 输入:测试数 ...

  9. java 判断object类型_Java学习-方法与多态的学习心得

    一 1.什么是方法重写 方法的重写或方法的覆盖(overriding) 子类根据需求对从父类继承的方法进行重新编写 重写时,可以用super.方法的方式来保留父类的方法 构造方法不能被重写 2.方法重 ...

最新文章

  1. TCP三次握手与四次挥手
  2. 织梦{dede:channel}无子栏目不显示同级栏目的两种修改方法
  3. c++面向对象高级编程 总目录
  4. MongoDB:SpringBoot有关@Document(collection = )与@Document(collation= )注解的区别
  5. 插画类引导页设计灵感|友好结合,总能带给人惊喜~
  6. vba正则表达式入门
  7. 航天金税3发票导入功能开发教程(一)
  8. 短视频jiexi客户端源代码
  9. 伍斯特理工学院计算机研究生,伍斯特理工学院计算机工程硕士排名第52(2020年TFE Times排名)...
  10. 【HTML 教程系列第 4 篇】HTML 的注释怎么写?
  11. WEB前端--Day9(动画)
  12. 货币银行学重点内容复习
  13. python使用神器_python 神器
  14. 思考12. 口说无凭,眼见为实。
  15. [转]index.dat文件剖析
  16. 哪个品牌的企业邮箱最好用?
  17. 【数学建模入门攻略】参赛一次,受益终身
  18. dfs 牛客 迷宫问题
  19. php转化成两位小数点,php 转化为两位小数的方法
  20. 机械硬盘提示函数不正确,要如何找到数据

热门文章

  1. wxWidgets:wxPropertyGrid概述
  2. boost::hof::rotate用法的测试程序
  3. boost::graph模块实现bellman-ford算法的测试程序
  4. boost::fusion::filter_if用法的测试程序
  5. boost::dynamic_bitset模块的测试程序
  6. GDCM:gdcm::Value的测试程序
  7. GDCM:gdcm::CodeString的测试程序
  8. ITK:从二进制图像中提取最大的连接组件
  9. VTK:网格之SplitPolyData
  10. OpenCV拼接细节stitching detailed的实例(附完整代码)