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

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

分析

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

获取 Property 信息

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

属性名称含义
java.versionJava 运行时环境版本
java.vendorJava 运行时环境供应商
java.vendor.urlJava 供应商的 URL
java.homeJava 安装目录
java.vm.specification.versionJava 虚拟机规范版本
java.vm.specification.vendorJava 虚拟机规范供应商
java.vm.specification.nameJava 虚拟机规范名称
java.vm.versionJava 虚拟机实现版本
java.vm.vendorJava 虚拟机实现供应商
java.vm.nameJava 虚拟机实现名称
java.specification.versionJava 运行时环境规范版本
java.specification.vendorJava 运行时环境规范供应商
java.specification.nameJava 运行时环境规范名称
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类详解

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值