生活随笔
收集整理的這篇文章主要介紹了
Java 判断操作系统类型(适用于各种操作系统)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近一段時間寫一個授權的程序,需要獲取很多信息來保證程序不能隨意復制使用,必須經過授權才可以。
為了限制用戶使用的操作系統,必須有統一的方法來獲取才可以。
在JAVA中,通過System.getProperty("os.name")來獲取,通過參考:http://lopica.sourceforge.net/os.html 來實現各操作系統的判斷。
針對windows系統,這里不具體判斷是那個版本,如果有需要,可以在判斷出windows之后,繼續判斷,判斷需要考慮java的版本,版本不同,結果也不一樣。
下面上代碼:
1.枚舉類型:EPlatform
[java] view plaincopyprint?
?????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;??}??
/*** 平臺* @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?
??????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;??????}?????????????????????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;??????}??????????????public?static?void?main(String[]?args)?{??????????System.out.println(OSinfo.getOSname());??????}????}??
/*** 操作系統類:* 獲取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?
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")?);????}??}??
總結
以上是生活随笔為你收集整理的Java 判断操作系统类型(适用于各种操作系统)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。