日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

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

發布時間:2024/9/27 windows 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 判断操作系统类型(适用于各种操作系统) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近一段時間寫一個授權的程序,需要獲取很多信息來保證程序不能隨意復制使用,必須經過授權才可以。


為了限制用戶使用的操作系統,必須有統一的方法來獲取才可以。


在JAVA中,通過System.getProperty("os.name")來獲取,通過參考:http://lopica.sourceforge.net/os.html 來實現各操作系統的判斷。


針對windows系統,這里不具體判斷是那個版本,如果有需要,可以在判斷出windows之后,繼續判斷,判斷需要考慮java的版本,版本不同,結果也不一樣。


下面上代碼:

1.枚舉類型:EPlatform

[java] view plaincopyprint?
  • /**?
  • ?*?平臺?
  • ?*?@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;??
  • }??
  • /*** 平臺* @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?
  • /**?
  • ?*?操作系統類:?
  • ?*?獲取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());??
  • ????}??
  • ??
  • }??
  • /*** 操作系統類:* 獲取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 判断操作系统类型(适用于各种操作系统)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。