All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.gitee.apanlh.util.sys.SystemInfo Maven / Gradle / Ivy

There is a newer version: 2.0.0.2
Show newest version
package com.gitee.apanlh.util.sys;

import com.gitee.apanlh.util.base.CollUtils;
import com.gitee.apanlh.util.base.SingletonUtils;

import java.io.File;
import java.lang.management.ManagementFactory;
import java.lang.management.OperatingSystemMXBean;
import java.lang.management.RuntimeMXBean;
import java.util.List;

/**	
 * 	系统信息
 * 	
 * 	@author Pan
 *
 */
public class SystemInfo {
	
	/** 当前默认地址 */
	static final String USER_DIR 										= System.getProperty("user.dir");
	/** 系统默认编码格式 */
	static final String DEF_ENCODING 									= System.getProperty("sun.jnu.encoding");
	/** 系统管理器 */
	static final String SECURITY_MANAGER 								= System.getProperty("java.security.manager");
	/** 运行时信息 */
	private static RuntimeMXBean runtimeBean 							= ManagementFactory.getRuntimeMXBean();
	/** 操作系统信息 */
	private static OperatingSystemMXBean systemBean 					= ManagementFactory.getOperatingSystemMXBean();
	
	/** 获取进程PID号 */
	private String pid;
	/** 获取主机名 */
	private String pidName;
	/** 获取完整的PID进程信息 
PID@用户名 */ private String getFullPid; /** 获取可用CPU数量
在虚拟机的特定调用过程中,这个值可能会改变。
虚拟机可用的处理器数不可能小于1 */ private String cpuAvailable; /** 获取CPU负载 */ private String cpuLoadAverage; /** 获取当前操作系统信息 */ private String name; /** 系统版本 */ private String version; /** 系统架构 */ private String arch; /** 获取默认系统编码格式 */ private String encoding; /** 系统用户信息 */ private SysUser user; /** 系统磁盘信息 */ private List disks; /** * 默认构造函数 * * @author Pan */ public SystemInfo() { super(); this.encoding = DEF_ENCODING; } /** * 获取进程PID号 * * @author Pan * @return String */ public String getPid() { if (this.pid == null) { String fullPid = getFullPid(); this.pid = fullPid.substring(0, fullPid.indexOf('@')); } return this.pid; } /** * 获取主机名 * * @author Pan * @return String */ public String getPidName() { if (this.pidName == null) { String fullPid = getFullPid(); this.pidName = fullPid.substring(fullPid.indexOf('@') + 1); } return pidName; } /** * 获取完整的PID进程信息 *
PID@用户名 * * @author Pan * @return String */ public String getFullPid() { if (this.getFullPid == null) { this.getFullPid = runtimeBean.getName(); } return this.getFullPid; } /** * 获取当前操作系统信息 * * @author Pan * @return String */ public String getName() { if (this.name == null) { this.name = systemBean.getName(); } return this.name; } /** * 获取可用CPU数量 *
在虚拟机的特定调用过程中,这个值可能会改变。 *
虚拟机可用的处理器数不可能小于1 * * @author Pan * @return String */ public String getCpuAvailable() { if (this.cpuAvailable == null) { this.cpuAvailable = String.valueOf(systemBean.getAvailableProcessors()); } return this.cpuAvailable; } /** * 获取CPU负载 * * @author Pan * @return String */ public String getCpuLoadAverage() { if (this.cpuLoadAverage == null) { this.cpuLoadAverage = String.valueOf(systemBean.getSystemLoadAverage()); } return this.cpuLoadAverage; } /** * 获取默认系统编码格式 * * @author Pan * @return String */ public String getEncoding() { return this.encoding; } /** * 获取系统用户信息 *
懒加载 * * @author Pan * @return SysUser */ public SysUser getUser() { if (this.user == null) { this.user = SingletonUtils.get(SysUser.class); } return this.user; } /** * 获取系统磁盘信息 * * @author Pan * @return List */ public List getDisks() { File[] disksFile = SystemDisk.getDisks(); if (this.disks == null) { int len = disksFile.length; disks = CollUtils.newArrayList(len); for (int i = 0; i < len; i++) { disks.add(SystemDisk.create(disksFile[i])); } } return this.disks; } @Override public String toString() { return "SystemInfo [pid=" + pid + ", pidName=" + pidName + ", getFullPid=" + getFullPid + ", cpuAvailable=" + cpuAvailable + ", cpuLoadAverage=" + cpuLoadAverage + ", name=" + name + ", version=" + version + ", arch=" + arch + ", encoding=" + encoding + ", user=" + user + ", disks=" + disks + "]"; } /** * 创建系统信息 * * @author Pan * @return SystemInfo */ public static SystemInfo create() { return SingletonUtils.get(SystemInfo.class); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy