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%桌面
这种形式