需求描述
- 在进行Java开发时,我们有时需要根据不同的操作系统执行不同的操作,例如在Windows系统下执行不同的命令,或者在Linux系统下调用不同的库函数。
因此,判断当前运行的操作系统是十分重要的。
- 此文将介绍如何使用Java判断当前操作系统,并给出相应的代码示例。
代码示例
OsUtils
import java.util.Properties;
/**
* 操作系统工具类
*/
public class OsUtils {
public static final String OS_NAME = "os.name";
public static OSType getOSType(Properties systemProperties){
if(systemProperties == null){
systemProperties = System.getProperties();
}
String osName = systemProperties.getProperty(OS_NAME);
if(osName == null){
return OSType.UNKNOWN;
}
osName = osName.toLowerCase();
if(osName.contains("windows")){//eg: "Windows 10"
return OSType.WINDOWS;
} else if(osName.contains("linux")){//"nux" | eg : "Linux"
return OSType.LINUX;
} else if(osName.contains("unix")) {//"nix"
return OSType.UNIX;
} else if(osName.contains("mac")){//eg: "Mac OS X"
return OSType.MAC;
} else if(osName.contains("sol")){//"sol"
return OSType.SOLARIS;
}
return OSType.UNKNOWN;
}
}
OSType
public enum OSType {
WINDOWS("WINDOWS", "Windows")
, LINUX("LINUX", "Linux")
, UNIX("UNIX", "Unix")
, MAC("MAC", "Mac OS")
, SOLARIS("SOLARIS", "Solaris OS")
, UNKNOWN("UNKNOWN", "Unknown OS")
;
private String code;
private String name;
OSType(String code, String name) {
this.code = code;
this.name = name;
}
public static String getName(String code) {
for (OSType c : OSType.values()) {
if (c.getCode().equals(code)) {
return c.name();
}
}
return null;
}
public static OSType getEnum(String code) {
for (OSType c : OSType.values()) {
if (c.getCode().equals(code)) {
return c;
}
}
return null;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
第三方库
common-lang3 : SystemUtils
Apache Commons Lang
库是一组扩展了Java标准库的工具类,其中的SystemUtils
类提供了一些静态方法用于获取系统信息。
依赖
- 首先,需要将Apache Commons Lang库添加到项目中。可以通过Maven或手动下载并引入Jar包的方式添加。
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
使用
- 获取系统属性
OS_NAME
org.apache.commons.lang3.SystemUtils.OS_NAME
- SystemUtils.IS_OS_XX | 判断操作系统类型
然后,可以使用SystemUtils.IS_OS_XXX
常量判断当前操作系统,例如:
if (SystemUtils.IS_OS_WINDOWS) {
// Windows操作系统
} else if (SystemUtils.IS_OS_MAC) {
// Mac操作系统
} else if (SystemUtils.IS_OS_LINUX) {
// Linux操作系统
} else {
// 其他操作系统
}
X 参考文献
org.apache.commons:commons-lang3:3.12.0
标签:code,return,操作系统,获取,OSType,Java,OS,String From: https://www.cnblogs.com/johnnyzen/p/18553484
org.apache.commons.lang3.SystemUtils#OS_NAME/IS_OS_WINDOWS/IS_OS_MAC/IS_OS_LINUX