diff --git a/CHANGELOG.md b/CHANGELOG.md index 215794fb5..c929e7ff4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ * 【http】 body方法传null跳过而非报错(issue#I12AP2@Gitee) * 【core】 TimeInterval增加intervalPretty方法(issue#I12A6T@Gitee) * 【core】 改进ArrayUtil.toString,提高性能 +* 【system】 增加SystemPropsKeys(issue#550@Github) ### Bug修复 * 【core】 修复DateUtil.offset导致的时区错误问题(issue#I1294O@Gitee) diff --git a/hutool-system/src/main/java/cn/hutool/system/SystemPropsKeys.java b/hutool-system/src/main/java/cn/hutool/system/SystemPropsKeys.java new file mode 100644 index 000000000..9f1b24ed7 --- /dev/null +++ b/hutool-system/src/main/java/cn/hutool/system/SystemPropsKeys.java @@ -0,0 +1,136 @@ +package cn.hutool.system; + +/** + * 系统属性名称常量池 + * + *

+ * 封装了包括Java运行时环境信息、Java虚拟机信息、Java类信息、OS信息、用户信息等
+ * + * + * @author Looly + * @since 4.6.7 + */ +public interface SystemPropsKeys { + + // ----- Java运行时环境信息 -----/ + /** + * Java 运行时环境规范名称 + */ + String SPECIFICATION_NAME = "java.specification.name"; + /** + * Java 运行时环境版本 + */ + String VERSION = "java.version"; + /** + * Java 运行时环境规范版本 + */ + String SPECIFICATION_VERSION = "java.specification.version"; + /** + * Java 运行时环境供应商 + */ + String VENDOR = "java.vendor"; + /** + * Java 运行时环境规范供应商 + */ + String SPECIFICATION_VENDOR = "java.specification.vendor"; + /** + * Java 供应商的 URL + */ + String VENDOR_URL = "java.vendor.url"; + /** + * Java 安装目录 + */ + String HOME = "java.home"; + /** + * 加载库时搜索的路径列表 + */ + String LIBRARY_PATH = "java.library.path"; + /** + * 默认的临时文件路径 + */ + String TMPDIR = "java.io.tmpdir"; + /** + * 要使用的 JIT 编译器的名称 + */ + String COMPILER = "java.compiler"; + /** + * 一个或多个扩展目录的路径 + */ + String EXT_DIRS = "java.ext.dirs"; + + // ----- Java虚拟机信息 -----/ + /** + * Java 虚拟机实现名称 + */ + String VM_NAME = "java.vm.name"; + /** + * Java 虚拟机规范名称 + */ + String VM_SPECIFICATION_NAME = "java.vm.specification.name"; + /** + * Java 虚拟机实现版本 + */ + String VM_VERSION = "java.vm.version"; + /** + * Java 虚拟机规范版本 + */ + String VM_SPECIFICATION_VERSION = "java.vm.specification.version"; + /** + * Java 虚拟机实现供应商 + */ + String VM_VENDOR = "java.vm.vendor"; + /** + * Java 虚拟机规范供应商 + */ + String VM_SPECIFICATION_VENDOR = "java.vm.specification.vendor"; + + // ----- Java类信息 -----/ + /** + * Java 类格式版本号 + */ + String CLASS_VERSION = "java.class.version"; + /** + * Java 类路径 + */ + String CLASS_PATH = "java.class.path"; + + // ----- OS信息 -----/ + /** + * 操作系统的名称 + */ + String OS_NAME = "os.name"; + /** + * 操作系统的架构 + */ + String OS_ARCH = "os.arch"; + /** + * 操作系统的版本 + */ + String OS_VERSION = "os.version"; + /** + * 文件分隔符(在 UNIX 系统中是“/”) + */ + String FILE_SEPARATOR = "file.separator"; + /** + * 路径分隔符(在 UNIX 系统中是“:”) + */ + String PATH_SEPARATOR = "path.separator"; + /** + * 行分隔符(在 UNIX 系统中是“\n”) + */ + String LINE_SEPARATOR = "line.separator"; + + // ----- 用户信息 -----/ + /** + * 用户的账户名称 + */ + String USER_NAME = "user.name"; + /** + * 用户的主目录 + */ + String USER_HOME = "user.home"; + /** + * 用户的当前工作目录 + */ + String USER_DIR = "user.dir"; +} diff --git a/hutool-system/src/main/java/cn/hutool/system/SystemUtil.java b/hutool-system/src/main/java/cn/hutool/system/SystemUtil.java index 1494e4bc5..7c9416f8e 100644 --- a/hutool-system/src/main/java/cn/hutool/system/SystemUtil.java +++ b/hutool-system/src/main/java/cn/hutool/system/SystemUtil.java @@ -28,71 +28,71 @@ import cn.hutool.core.util.StrUtil; */ public class SystemUtil { - /***** Java运行时环境信息 *****/ - // Java 运行时环境规范名称 - public final static String SPECIFICATION_NAME = "java.specification.name"; - // Java 运行时环境版本 - public final static String VERSION = "java.version"; - // Java 运行时环境规范版本 - public final static String SPECIFICATION_VERSION = "java.specification.version"; - // Java 运行时环境供应商 - public final static String VENDOR = "java.vendor"; - // Java 运行时环境规范供应商 - public final static String SPECIFICATION_VENDOR = "java.specification.vendor"; - // Java 供应商的 URL - public final static String VENDOR_URL = "java.vendor.url"; - // Java 安装目录 - public final static String HOME = "java.home"; - // 加载库时搜索的路径列表 - public final static String LIBRARY_PATH = "java.library.path"; - // 默认的临时文件路径 - public final static String TMPDIR = "java.io.tmpdir"; - // 要使用的 JIT 编译器的名称 - public final static String COMPILER = "java.compiler"; - // 一个或多个扩展目录的路径 - public final static String EXT_DIRS = "java.ext.dirs"; + // ----- Java运行时环境信息 -----/ + /** Java 运行时环境规范名称的KEY */ + public final static String SPECIFICATION_NAME = SystemPropsKeys.SPECIFICATION_NAME; + /** Java 运行时环境版本的KEY */ + public final static String VERSION = SystemPropsKeys.VERSION; + /** Java 运行时环境规范版本的KEY */ + public final static String SPECIFICATION_VERSION = SystemPropsKeys.SPECIFICATION_VERSION; + /** Java 运行时环境供应商的KEY */ + public final static String VENDOR = SystemPropsKeys.VENDOR; + /** Java 运行时环境规范供应商的KEY */ + public final static String SPECIFICATION_VENDOR = SystemPropsKeys.SPECIFICATION_VENDOR; + /** Java 供应商的 URL的KEY */ + public final static String VENDOR_URL = SystemPropsKeys.VENDOR_URL; + /** Java 安装目录的KEY */ + public final static String HOME = SystemPropsKeys.HOME; + /** 加载库时搜索的路径列表的KEY */ + public final static String LIBRARY_PATH = SystemPropsKeys.LIBRARY_PATH; + /** 默认的临时文件路径的KEY */ + public final static String TMPDIR = SystemPropsKeys.TMPDIR; + /** 要使用的 JIT 编译器的名称的KEY */ + public final static String COMPILER = SystemPropsKeys.COMPILER; + /** 一个或多个扩展目录的路径的KEY */ + public final static String EXT_DIRS = SystemPropsKeys.EXT_DIRS; - /***** Java虚拟机信息 *****/ - // Java 虚拟机实现名称 - public final static String VM_NAME = "java.vm.name"; - // Java 虚拟机规范名称 - public final static String VM_SPECIFICATION_NAME = "java.vm.specification.name"; - // Java 虚拟机实现版本 - public final static String VM_VERSION = "java.vm.version"; - // Java 虚拟机规范版本 - public final static String VM_SPECIFICATION_VERSION = "java.vm.specification.version"; - // Java 虚拟机实现供应商 - public final static String VM_VENDEOR = "java.vm.vendor"; - // Java 虚拟机规范供应商 - public final static String VM_SPECIFICATION_VENDOR = "java.vm.specification.vendor"; + // ----- Java虚拟机信息 -----/ + /** Java 虚拟机实现名称的KEY */ + public final static String VM_NAME = SystemPropsKeys.VM_NAME; + /** Java 虚拟机规范名称的KEY */ + public final static String VM_SPECIFICATION_NAME = SystemPropsKeys.VM_SPECIFICATION_NAME; + /** Java 虚拟机实现版本的KEY */ + public final static String VM_VERSION = SystemPropsKeys.VM_VERSION; + /** Java 虚拟机规范版本的KEY */ + public final static String VM_SPECIFICATION_VERSION = SystemPropsKeys.VM_SPECIFICATION_VERSION; + /** Java 虚拟机实现供应商的KEY */ + public final static String VM_VENDOR = SystemPropsKeys.VM_VENDOR; + /** Java 虚拟机规范供应商的KEY */ + public final static String VM_SPECIFICATION_VENDOR = SystemPropsKeys.VM_SPECIFICATION_VENDOR; - /***** Java类信息 *****/ - // Java 类格式版本号 - public final static String CLASS_VERSION = "java.class.version"; - // Java 类路径 - public final static String CLASS_PATH = "java.class.path"; + // ----- Java类信息 -----/ + /** Java 类格式版本号的KEY */ + public final static String CLASS_VERSION = SystemPropsKeys.CLASS_VERSION; + /** Java 类路径的KEY */ + public final static String CLASS_PATH = SystemPropsKeys.CLASS_PATH; - /***** OS信息 *****/ - // 操作系统的名称 - public final static String OS_NAME = "os.name"; - // 操作系统的架构 - public final static String OS_ARCH = "os.arch"; - // 操作系统的版本 - public final static String OS_VERSION = "os.version"; - // 文件分隔符(在 UNIX 系统中是“/”) - public final static String FILE_SEPRATOR = "file.separator"; - // 路径分隔符(在 UNIX 系统中是“:”) - public final static String PATH_SEPRATOR = "path.separator"; - // 行分隔符(在 UNIX 系统中是“\n”) - public final static String LINE_SEPRATOR = "line.separator"; + // ----- OS信息 -----/ + /** 操作系统的名称的KEY */ + public final static String OS_NAME = SystemPropsKeys.OS_NAME; + /** 操作系统的架构的KEY */ + public final static String OS_ARCH = SystemPropsKeys.OS_ARCH; + /** 操作系统的版本的KEY */ + public final static String OS_VERSION = SystemPropsKeys.OS_VERSION; + /** 文件分隔符(在 UNIX 系统中是“/”)的KEY */ + public final static String FILE_SEPARATOR = SystemPropsKeys.FILE_SEPARATOR; + /** 路径分隔符(在 UNIX 系统中是“:”)的KEY */ + public final static String PATH_SEPARATOR = SystemPropsKeys.PATH_SEPARATOR; + /** 行分隔符(在 UNIX 系统中是“\n”)的KEY */ + public final static String LINE_SEPARATOR = SystemPropsKeys.LINE_SEPARATOR; - /***** 用户信息 *****/ - // 用户的账户名称 - public final static String USER_NAME = "user.name"; - // 用户的主目录 - public final static String USER_HOME = "user.home"; - // 用户的当前工作目录 - public final static String USER_DIR = "user.dir"; + // ----- 用户信息 -----/ + /** 用户的账户名称的KEY */ + public final static String USER_NAME = SystemPropsKeys.USER_NAME; + /** 用户的主目录的KEY */ + public final static String USER_HOME = SystemPropsKeys.USER_HOME; + /** 用户的当前工作目录的KEY */ + public final static String USER_DIR = SystemPropsKeys.USER_DIR; // ----------------------------------------------------------------------- Basic start