Java 获取系统信息、判断操作系统等及工具类封装

Java 提供了获取系统信息的API 被封装在 System 类中,该类可以获取系统信息和环境信息。

分析

  • System 类提供了标准输入、标准输出和标准错误输出
System.in.read()
System.out.println("");
System.err.println("")
  • 常用的方法
    数组拷贝 :arraycopy()
    获取系统毫秒数: currentTimeMillis()
    *退出:exit() 慎重使用
    *GC : gc() 慎重使用

获取 Property 信息

常用的一些系统属性名称及含义:

属性名称 含义
java.version Java 运行时环境版本
java.vendor Java 运行时环境供应商
java.vendor.url Java 供应商的 URL
java.home Java 安装目录
java.vm.specification.version Java 虚拟机规范版本
java.vm.specification.vendor Java 虚拟机规范供应商
java.vm.specification.name Java 虚拟机规范名称
java.vm.version Java 虚拟机实现版本
java.vm.vendor Java 虚拟机实现供应商
java.vm.name Java 虚拟机实现名称
java.specification.version Java 运行时环境规范版本
java.specification.vendor Java 运行时环境规范供应商
java.specification.name Java 运行时环境规范名称
os.name 操作系统的名称
os.arch 操作系统的架构
os.version 操作系统的版本

在一些跨平台的开发中,需要根据不同的操作系统做出不同的处理。Java提供了System类的getPropperty()方法,其中包含了一些判断操作系统的属性。

以下是判断操作系统的一些常用属性:

属性名称 含义
os.name 操作系统的名称
os.arch 操作系统的架构(x86、x64等)
os.version 操作系统的版本
file.separator 文件分隔符
path.separator 路径分隔符
line.separator 行分隔符
user.name 当前用户的用户名
user.home 当前用户的主目录
user.dir 当前用户的工作目录

例如,以下代码可以判断当前操作系统是否是Windows:

if(System.getProperty("os.name").toLowerCase().contains("win")){
    System.out.println("Windows");
} else {
    System.out.println("Not Windows");
}

如果想要获取所有的系统属性,可以使用下面的代码:

Properties props = System.getProperties();
props.list(System.out);

相关API :

  • getProperties()
  • getPropertie(String key)

例如,以下代码可以获取当前JVM的版本号:

System.out.println(System.getProperty("java.version"));

获取 环境信息

  • Map<String,String> getenv = System.getenv();
  • System.setenv(key,val);

工具类

package com.xzbd.common.utils;


public class SystemUtil {
    
    

	public static String getOsName() {
    
    
		String osName = System.getProperty("os.name");
		if (osName == null) {
    
    
			return "";
		}
		return osName;
	}

	public static String getOsArch() {
    
    
		String osArch = System.getProperty("os.arch");
		if (osArch == null) {
    
    
			return "";
		}
		return osArch;
	}
	public static String getOsVersion() {
    
    
		String osVersion = System.getProperty("os.version");
		if (osVersion == null) {
    
    
			return "";
		}
		return osVersion;
	}
	public static boolean isLinux() {
    
    
		return getOsName().toLowerCase().contains("linux");
	}

	public static boolean isWindows() {
    
    
		return getOsName().toLowerCase().contains("windows");
	}
	
	public static String getLineSeprator() {
    
    
		String lineSeprator = System.getProperty("line.separator");
		if(lineSeprator == null) {
    
    
			return "";
		}
		return lineSeprator;
	}
	
	public static String getUsername() {
    
    
		String username = System.getProperty("user.name");
		if(username == null) {
    
    
			return "";
		}
		return username;
	}

	public static String getUserHome() {
    
    
		String userhome = System.getProperty("user.home");
		if(userhome == null) {
    
    
			return "";
		}
		return userhome;
	}
	
	public static String getUserDir() {
    
    
		String userdir = System.getProperty("user.dir");
		if(userdir == null) {
    
    
			return "";
		}
		return userdir;
	}
}

开源工具

  • commons-lang 中的 SystemUtils
<!-- https://mvnrepository.com/artifact/commons-lang/commons-lang -->
<dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>2.6</version>
</dependency>

  • commons-lang3 中的 SystemUtils
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
</dependency>

参考文章

Java System类详解

猜你喜欢

转载自blog.csdn.net/m0_47406832/article/details/127026978