Spring Boot 2系列(五十九):获取系统环境配置,临时目录,jar包所在目录
Java 应用获取系统配置,获取临时目录,获取 Spring Boot Jar 包所在的目录。
java 应用系统配置
可以使用 System.getProperty(String key) 获取系统的配置信息,下面是可以的入参:
java.version | Java运行时环境版本 |
---|---|
java.vendor | Java运行时环境供应商 |
java.vendor.url | Java供应商的 URL |
java.home | Java安装目录 |
java.vm.specification.version | Java虚拟机规范版本 |
java.vm.specification.vendor | Java虚拟机规范供应商 |
java.vm.specification.name | Java虚拟机规范名称 |
java.vm.version | Java虚拟机实现版本 |
java.vm.vendor | Java虚拟机实现供应商 |
java.vm.name | Java虚拟机实现名称 |
java.specification.version | Java运行时环境规范版本 |
java.specification.vendor | Java运行时环境规范供应商 |
java.specification.name | Java运行时环境规范名称 |
java.class.version | Java类格式版本号 |
java.class.path | Java类路径 |
java.library.path | 加载库时搜索的路径列表 |
java.io.tmpdir | 默认的临时文件路径 |
java.compiler | 要使用的 JIT 编译器的名称 |
java.ext.dirs | 一个或多个扩展目录的路径 |
os.name | 操作系统的名称 |
os.arch | 操作系统的架构 |
os.version | 操作系统的版本 |
file.separator | 文件分隔符(在 UNIX 系统中是“/”) |
path.separator | 路径分隔符(在 UNIX 系统中是“:”) |
line.separator | 行分隔符(在 UNIX 系统中是“/n”) |
user.name | 用户的账户名称 |
user.home | 用户的主目录 |
user.dir | 用户的当前工作目录 |
jar包所在目录
1 | public ApplicationHome(Class<?> sourceClass) { |
ApplicationHome 提供对应用程序主目录的访问。尝试为 Jar 文件、分解的归档文件和直接运行的应用程序选择一个合理的目录(严谨点应该是文件系统的路径)。
ApplicationHome 提供了两个方法:
home.getDir():返回应用主目录,永不为空。
实际是获取当前 class 文件所在的目录,如果是在 IDEA 运用应用,打印输出的是:
...\target\classes
;如果是直接运行 Spring Boot Jar 文件,输出的就是 jar 所在的目录。home.getSource():返回用于查找主目录的基础源(构造方法传入的 class 对象),通常是 jar 文件或目录,如果 class 对象不存在,返回 null。
其它方式:
1 | //第一种 |
IDEA 运行输出:
1 | 方式一:D:\workspace\demo\manager\manager-provider\target\classes |
运行 jar 包的输出:
注意方 式三 和 方式四,这样的路径在操作系统的文件系统中无法识别的,程序处理上就会报异常。
1 | 方式一:D:\workspace\demo\manager\manager-provider\target |
获取临时文件目录
1 | String tempPath = System.getProperty("java.io.tmpdir") |
Spring Boot 2系列(五十九):获取系统环境配置,临时目录,jar包所在目录
http://blog.gxitsky.com/2021/01/12/SpringBoot-59-system-env-tips/