System.getProperty()获取系统的配置信息


1. 通过System.getProperty()可以获取系统的配置信息,System.getProperty()的参数总结:

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  用户的当前工作目录

2. 示例:

复制代码
public class SystemPropertyTest {

    public static void main(String[] args) {

        String[] keys = { "java.version", "java.vendor", "java.vendor.url", "java.home",
                "java.vm.specification.version", "java.vm.specification.vendor", "java.vm.specification.name",
                "java.vm.version", "java.vm.vendor", "java.vm.name", "java.specification.version",
                "java.specification.vendor", "java.specification.name", "java.class.version", "java.class.path",
                "java.library.path", "java.io.tmpdir", "java.compiler", "java.ext.dirs", "os.name", "os.arch",
                "os.version", "file.separator", "path.separator", "line.separator", "user.name", "user.home",
                "user.dir" };

        for (String key : keys) {
            String value = System.getProperty(key);
            System.out.println(key + " : " + value);
        }
    }
}
复制代码

打印结果:

复制代码
java.version : 1.8.0_121
java.vendor : Oracle Corporation
java.vendor.url : http://java.oracle.com/
java.home : C:Program Files (x86)Javajdk1.8.0_121jre
java.vm.specification.version : 1.8
java.vm.specification.vendor : Oracle Corporation
java.vm.specification.name : Java Virtual Machine Specification
java.vm.version : 25.121-b13
java.vm.vendor : Oracle Corporation
java.vm.name : Java HotSpot(TM) Client VM
java.specification.version : 1.8
java.specification.vendor : Oracle Corporation
java.specification.name : Java Platform API Specification
java.class.version : 52.0

java.class.path : E:workspaceTestCodeuildclasses;E:eclipsepluginsorg.junit_4.11.0.v201303080030junit.jar;E:eclipsepluginsorg.hamcrest.core_1.3.0.v201303031735.jar
java.library.path : C:Program Files (x86)Javajdk1.8.0_121in;C:windowsSunJavain;C:windowssystem32;C:windows;C:/Program Files (x86)/Java/jre1.8.0_121/bin/client;C:/Program Files (x86)/Java/jre1.8.0_121/bin;C:/Program Files (x86)/Java/jre1.8.0_121/lib/i386;C:ProgramDataOracleJavajavapath;C:windowssystem32;C:windows;C:windowsSystem32Wbem;C:windowsSystem32WindowsPowerShellv1.0;C:Program FilesLenovo Fingerprint Reader;C:Program FilesLenovo Fingerprint Readerx86;C:Program Files (x86)Javajdk1.8.0_121in;C:Program Files (x86)Javajdk1.8.0_121jrein;E:TortoiseSVNin;E:mysql-5.6.24-winx64in;E:apache-maven-3.3.3in;C:Program Files*** ***;.;;E:eclipse;;.;;.
java.io.tmpdir : C:Users***~1.***AppDataLocalTemp java.compiler : null java.ext.dirs : C:Program Files (x86)Javajdk1.8.0_121jrelibext;C:windowsSunJavalibext os.name : Windows 7 os.arch : x86 os.version : 6.1 file.separator : path.separator : ; line.separator : user.name : ***.*** user.home : C:Users***.*** user.dir : E:workspaceTestCode
复制代码

我们可以通过 System.getProperty("user.home") 读取JAVA系统的user.home 属性的值。


System.getProperty("user.home") 方法先去读取注册表中HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerShell Folders下的 Desktop 键值做为 user.dir ,再取它的上一级目录做为user.home


打开注册表编辑器,定位到上面的键值,你可以发现 Desktop 的值是%USERPROFILE%桌面 这种形式
C:Documents and SettingsAdministrator桌面
%USERPROFILE% 对应 C:Documents and Settings\%用户名%。对于 Administrator 用户,这里取得的 Desktop 自然是 C:Documents and SettingsAdministrator桌面. 那么 user.home 就应该是C:Documents and SettingsAdministrator

public class PrintHome{
public static void main(String[] args) {
System.out.println(System.getProperty("user.home") );
}

有些电脑的注册表中的Desktop可能变为 %USERPROFILE%桌面 这种形式。这时我们得到的 user.home 可能会变成 C:Documents and SettingsAdministrator桌面,这时需要手动修改 Desktop%USERPROFILE%桌面 这种形式

原文地址:https://www.cnblogs.com/leeego-123/p/12418932.html