Java準確的獲取操作系統的名稱

cmn6 9年前發布 | 4K 次閱讀 Java

在我們日常開發中,經常需要判斷操作系統的版本或者系統的名字等等。這就需要我們用到jdk默認帶的一些屬性了。這里我對各個版本的系統都做了區分,分別能判斷mac,linux,window等大眾的操作系統名稱。直接看代碼(OSUtil.java):

    package com.herman.util;
/**

 * @see 獲取操作系統名稱 
 * @author Herman.Xiong 
 * @date 2014年4月22日 13:36:14 
 * @version V1.0 
 * @since jdk 1.6 
 */  
public class OSUtil {  
    private static final boolean osIsMacOsX;  
    private static final boolean osIsWindows;  
    private static final boolean osIsWindowsXP;  
    private static final boolean osIsWindows2003;  
    private static final boolean osIsWindowsVista;  
    private static final boolean osIsLinux;  
    private static final boolean osIsWindowsWin7;  
    private static final boolean osIsWindowsWin8;  

    static {  
        String os = System.getProperty("os.name");  
        if (os != null)  
            os = os.toLowerCase();  
        osIsMacOsX = "mac os x".equals(os);  
        osIsWindows = os != null && os.indexOf("windows") != -1;  
        osIsWindowsXP = "windows xp".equals(os);  
        osIsWindows2003 = "windows 2003".equals(os);  
        osIsWindowsVista = "windows vista".equals(os);  
        osIsLinux = os != null && os.indexOf("linux") != -1;  
        osIsWindowsWin7 = os !=null && os.indexOf("windows 7") != -1;  
        osIsWindowsWin8 = os !=null && os.indexOf("windows 8") != -1;  
    }  

    public static boolean isMacOSX() {  
        return osIsMacOsX;  
    }  

    public static boolean isWindows() {  
        return osIsWindows;  
    }  

    public static boolean isWindowsXP() {  
        return osIsWindowsXP;  
    }  

    public static boolean isWindows2003() {  
        return osIsWindows2003;  
    }  

    public static boolean isWindowsVista() {  
        return osIsWindowsVista;  
    }  

    public static boolean isLinux() {  
        return osIsLinux;  
    }  

    public static boolean IsWindowsWin7(){  
        return osIsWindowsWin7;  
    }  

    public static boolean IsWindowsWin8(){  
        return osIsWindowsWin8;  
    }  
}  </pre> 


精華都在上面。下面我們用各種jdk版本和各種操作系統進行測試。測試代碼(TestOS.java):

    package com.herman.test;

import com.herman.util.OSUtil;  
/** 
 * @see 測試操作系統類型 
 * @author Herman.Xiong 
 * @date 2014年4月22日 13:40:06 
 * @version V1.0 
 * @since jdk 1.6 
 */  
public class TestOs {  

    public static String getVersion(){  
        return "當前版本 V1.0 2014年4月22日 11:57:20";  
    }   
    public static void main(String[] args) {  
        System.out.println(System.getProperty("os.name"));  
        System.out.println(getVersion());  
        System.out.println("當前系統為Mac系統:"+OSUtil.isMacOSX());  
        System.out.println("當前系統為Linux系統:"+OSUtil.isLinux());  
        System.out.println("當前系統為Window系統:"+OSUtil.isWindows());  
        System.out.println("當前系統為Windows2003系統:"+OSUtil.isWindows2003());  
        System.out.println("當前系統為WindowsVista系統:"+OSUtil.isWindowsVista());  
        System.out.println("當前系統為WindowsXP系統:"+OSUtil.isWindowsXP());  
        /* 
         * 注意:如果使用的1.6的jdk,那么對于win7和win8系統都顯示的“Windows Vista” 
         * 如果要正確判斷win7還是win8系統,則需要使用jdk1.7 
         * android系統需要稍微改動 
         */  
        System.out.println("當前系統為Windows7系統:"+OSUtil.IsWindowsWin7());  
        System.out.println("當前系統為Windows8系統:"+OSUtil.IsWindowsWin8());  
    }  
}  </pre> 


 本文由用戶 cmn6 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!