系统信息工具类

本文最后更新于:2025年2月18日 下午

系统信息工具类

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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
import lombok.Getter;

import java.lang.management.ManagementFactory;
import java.net.InetAddress;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
* 系统信息工具类
* @author peter
* @date 2024/11/13
* @className SystemInfo
* @description 定义了系统信息静态常量,包括服务器信息、jvm信息和项目启动时间
*/
@Getter
public class SystemInfo {

/////// 服务器信息 ////////

/**
* 系统信息 >> 操作系统名称
*/
public static final String OS_NAME;

/**
* 系统信息 >> 系统架构
*/
public static final String OS_ARCH;

/**
* 系统信息 >> 系统版本
*/
public static final String OS_VERSION;

/**
* 系统信息 >> 主机名
*/
public static final String HOST_NAME;

/**
* 系统信息 >> 主机ip地址
*/
public static final String HOST_IP;

/////// Java虚拟机信息 ////////

/**
* 系统信息 >> java版本
*/
public static final String JAVA_VERSION;

/**
* 系统信息 >> java路径
*/
public static final String JAVA_HOME;

/**
* 系统信息 >> jvm名称
*/
public static final String JVM_NAME;

/**
* 系统信息 >> jvm版本
*/
public static final String JVM_VERSION;

/**
* 系统信息 >> jvm规范版本
*/
public static final String JVM_SPECIFICATION_VERSION;

/**
* 系统信息 >> jvm启动参数
*/
public static final String JVM_ARGUMENTS;

/**
* 系统信息 >> 项目路径
*/
public static final String PROJECT_DIR;

/**
* 系统信息 >> 启动时间
*/
public static final String START_TIME;


// 初始化静态常量数据
static {
try {
InetAddress inetAddress = InetAddress.getLocalHost();
List<String> jvmArguments = ManagementFactory.getRuntimeMXBean().getInputArguments();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
OS_NAME = System.getProperty("os.name");
OS_ARCH = System.getProperty("os.arch");
OS_VERSION = System.getProperty("os.version");
HOST_NAME = inetAddress.getHostName();
HOST_IP = inetAddress.getHostAddress();

JAVA_VERSION = System.getProperty("java.version");
JAVA_HOME = System.getProperty("java.home");
JVM_NAME = System.getProperty("java.vm.name");
JVM_VERSION = System.getProperty("java.vm.version");
JVM_SPECIFICATION_VERSION = System.getProperty("java.vm.specification.version");
JVM_ARGUMENTS = String.join(", ", jvmArguments);
PROJECT_DIR = System.getProperty("user.dir");
START_TIME = sdf.format(new Date());
} catch (Exception e) {
throw new RuntimeException(e);
}
}

/**
* 输出系统信息
* @author peter
* @date 2024/11/13
* @className SystemInfo
* @packageName org.example.utils
*/
public String toPrint() {
return "系统信息{" +
"操作系统:'" + OS_NAME + '\'' +
", 系统架构='" + OS_ARCH + '\'' +
", 系统版本='" + OS_VERSION + '\'' +
", 主机名称='" + HOST_NAME + '\'' +
", 主机网络地址='" + HOST_IP + '\'' +
", Java 版本='" + JAVA_VERSION + '\'' +
", Java 安装路径='" + JAVA_HOME + '\'' +
", Java 虚拟机名称='" + JVM_NAME + '\'' +
", Java 虚拟机版本='" + JAVA_VERSION + '\'' +
", Java 虚拟机简介版本='" + JVM_SPECIFICATION_VERSION + '\'' +
", JVM 运行参数='" + JVM_ARGUMENTS + '\'' +
", 项目路径='" + PROJECT_DIR + '\'' +
", 启动时间='" + START_TIME + '\'' +
'}';
}

// 测试主程序入口
public static void main(String[] args) throws Exception {

SystemInfo systemInfo = new SystemInfo();
System.out.println(systemInfo.toPrint());
}
}

系统信息工具类
https://superlovelace.top/2024/11/13/系统信息类/
作者
棱境
发布于
2024年11月13日
更新于
2025年2月18日
许可协议