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

该博客介绍了一种在Java中获取操作系统信息的方法,通过System.getProperty(os.name)来判断不同的操作系统类型,如Linux、Mac OS、Windows等,并提供了一个枚举类型EPlatform用于表示这些平台。此外,代码示例展示了如何根据获取的信息限制程序的使用,确保只有经过授权的操作系统才能运行程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近一段时间写一个授权的程序,需要获取很多信息来保证程序不能随意复制使用,必须经过授权才可以。

为了限制用户使用的操作系统,必须有统一的方法来获取才可以。

在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&&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());

}

}

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值