当前位置:   article > 正文

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

java 获取系统信息

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

分析

  • System 类提供了标准输入、标准输出和标准错误输出
System.in.read()
System.out.println("");
System.err.println("")
  • 1
  • 2
  • 3
  • 常用的方法
    数组拷贝 :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");
}
  • 1
  • 2
  • 3
  • 4
  • 5

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

Properties props = System.getProperties();
props.list(System.out);
  • 1
  • 2

相关API :

  • getProperties()
  • getPropertie(String key)

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

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

获取 环境信息

  • 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;
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67

开源工具

  • 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>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 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>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

参考文章

Java System类详解

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/372302?site
推荐阅读
相关标签
  

闽ICP备14008679号