欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java 判断操作系统类型(适用于各种操作系统),java操作系统,最近一段时间写一个授权的

来源: javaer 分享于  点击 5933 次 点评:38

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&amp;&amp;OS.indexOf("os")>0&amp;&amp;OS.indexOf("x")<0;    }    public static boolean isMacOSX(){        return OS.indexOf("mac")>=0&amp;&amp;OS.indexOf("os")>0&amp;&amp;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&amp;&amp;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());    }}

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

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

相关栏目:

用户点评