• Java 判断操作系统类型(适用于各种操作系统)


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

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

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

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

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

    下面上代码:

    1.枚举类型:EPlatform

    /**
     * 平台
     * @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

    /**
     * 操作系统类:
     * 获取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 ,如果大家使用别的操作系统,希望能把操作系统和结果在这里留言写下来。

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

    class WhatOS 
    {
      public static void main( String args[] ) 
      {
        System.out.println( System.getProperty("os.name") );
        System.out.println( System.getProperty("os.version") );
        System.out.println( System.getProperty("os.arch") );
      }
    }

    来自:  http://blog.csdn.net/isea533/article/details/8449919

  • 相关阅读:
    五大P2P平台费用一览
    警惕P2B模式
    仿照jquery封装一个自己的js库
    怎样给div增加resize事件
    美化浏览器滚动条效果
    手机端触屏手指滑动方向及拖动层
    JS中原型链中的prototype与_proto_的个人理解与详细总结(**************************************************************)
    JavaScript this用法总结(**************************************)
    js中call、apply、bind那些事2
    深刻理解JavaScript---闭包
  • 原文地址:https://www.cnblogs.com/mjorcen/p/3824381.html
Copyright © 2020-2023  润新知