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 EPlatformString 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){
        ifisAix)){
            _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 mainString[] args) {
        System.out.printlnOSinfo.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

Published by

风君子

独自遨游何稽首 揭天掀地慰生平