package Java_Test; public class System1 { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(System.getProperty("java.version")); System.out.println(System.getProperty("java.vendor")); System.out.println(System.getProperty("java.home")); System.out.println(System.getProperty("java.library.path")); System.out.println(System.getProperty("user.dir")); //获取当前类工作目录 System.out.println(System.getProperty("os.version")); System.out.println(System.getProperty("os.name")); System.out.println(System.getenv("path")); } }
补充:获取系统所有属性的方法
package com.test; import java.util.Properties; public class MyTest { public static void main(String[] args) { Properties properties = System.getProperties(); for (Object key : properties.keySet()) { System.out.println(key + " : " + properties.getProperty((String) key)); } } }
源码查看:所有的属性都存在System的一个内部属性Properties中,Properties是一个继承HashTable的类
(1)System.getProperties
public static Properties getProperties() { SecurityManager sm = getSecurityManager(); if (sm != null) { sm.checkPropertiesAccess(); } return props; }
private static Properties props;
(2)Properties是一个继承HashTable的类
public class Properties extends Hashtable<Object,Object> { private static final long serialVersionUID = 4112578634029874840L; protected Properties defaults; 。。。 }
结果:
java.runtime.name : Java(TM) SE Runtime Environment
sun.boot.library.path : C:Program FilesJavajdk1.7.0_80jrein
java.vm.version : 24.80-b11
java.vm.vendor : Oracle Corporation
java.vendor.url : http://java.oracle.com/
path.separator : ;
java.vm.name : Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg : sun.io
user.country : CN
user.script :
sun.java.launcher : SUN_STANDARD
sun.os.patch.level :
java.vm.specification.name : Java Virtual Machine Specification
user.dir : E:xiangmuMytest
java.runtime.version : 1.7.0_80-b15
java.awt.graphicsenv : sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs : C:Program FilesJavajdk1.7.0_80jrelibendorsed
os.arch : amd64
java.io.tmpdir : C:UsersADMINI~1AppDataLocalTemp
line.separator :
java.vm.specification.vendor : Oracle Corporation
user.variant :
os.name : Windows 8.1
sun.jnu.encoding : GBK
java.library.path : C:Program FilesJavajdk1.7.0_80in;C:WINDOWSSunJavain;C:WINDOWSsystem32;C:WINDOWS;C:/Program Files/Java/jdk1.7.0_80/bin/../jre/bin/server;C:/Program Files/Java/jdk1.7.0_80/bin/../jre/bin;C:/Program Files/Java/jdk1.7.0_80/bin/../jre/lib/amd64;C:oraclexeapporacleproduct11.2.0serverin;C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;C:WINDOWSSystem32WindowsPowerShellv1.0;E:softapache-maven-3.5.3in;C:WINDOWSSystem32OpenSSH;E:gitGitcmd;E:SVNin;C:UsersAdministratorAppDataLocalMicrosoftWindowsApps;E:softmavenapache-maven-3.3.9in;C:Program FilesMySQLMySQL Server 5.7in;C:Program FilesJavajdk1.7.0_80in;E:gitGitin;E:gitGitusrin;E:gitGit;C:Program FilesJavajdk1.7.0_80jrein;D:zdcontomcatzdc8loprogram;;E:softeclipseeclipse-jee-mars-1-win32-x86_64eclipse;;.
java.specification.name : Java Platform API Specification
java.class.version : 51.0
sun.management.compiler : HotSpot 64-Bit Tiered Compilers
os.version : 6.3
user.home : C:UsersAdministrator
user.timezone :
java.awt.printerjob : sun.awt.windows.WPrinterJob
file.encoding : UTF-8
java.specification.version : 1.7
java.class.path : E:xiangmuMytestin;E:xiangmuMytestWebContentWEB-INFliblog4j-1.2.16.jar;E:xiangmuMytestWebContentWEB-INFlibslf4j-api-1.5.10.jar;E:xiangmuMytestWebContentWEB-INFlibslf4j-log4j12-1.5.10.jar;E: omcatapache-tomcat-7.0.88libannotations-api.jar;E: omcatapache-tomcat-7.0.88libcatalina-ant.jar;E: omcatapache-tomcat-7.0.88libcatalina-ha.jar;E: omcatapache-tomcat-7.0.88libcatalina-tribes.jar;E: omcatapache-tomcat-7.0.88libcatalina.jar;E: omcatapache-tomcat-7.0.88libecj-4.4.2.jar;E: omcatapache-tomcat-7.0.88libel-api.jar;E: omcatapache-tomcat-7.0.88libjasper-el.jar;E: omcatapache-tomcat-7.0.88libjasper.jar;E: omcatapache-tomcat-7.0.88libjsp-api.jar;E: omcatapache-tomcat-7.0.88libservlet-api.jar;E: omcatapache-tomcat-7.0.88lib omcat-api.jar;E: omcatapache-tomcat-7.0.88lib omcat-coyote.jar;E: omcatapache-tomcat-7.0.88lib omcat-dbcp.jar;E: omcatapache-tomcat-7.0.88lib omcat-i18n-es.jar;E: omcatapache-tomcat-7.0.88lib omcat-i18n-fr.jar;E: omcatapache-tomcat-7.0.88lib omcat-i18n-ja.jar;E: omcatapache-tomcat-7.0.88lib omcat-jdbc.jar;E: omcatapache-tomcat-7.0.88lib omcat-util.jar;E: omcatapache-tomcat-7.0.88lib omcat7-websocket.jar;E: omcatapache-tomcat-7.0.88libwebsocket-api.jar
user.name : Administrator
java.vm.specification.version : 1.7
sun.java.command : com.test.MyTest
java.home : C:Program FilesJavajdk1.7.0_80jre
sun.arch.data.model : 64
user.language : zh
java.specification.vendor : Oracle Corporation
awt.toolkit : sun.awt.windows.WToolkit
java.vm.info : mixed mode
java.version : 1.7.0_80
java.ext.dirs : C:Program FilesJavajdk1.7.0_80jrelibext;C:WINDOWSSunJavalibext
sun.boot.class.path : C:Program FilesJavajdk1.7.0_80jrelib
esources.jar;C:Program FilesJavajdk1.7.0_80jrelib
t.jar;C:Program FilesJavajdk1.7.0_80jrelibsunrsasign.jar;C:Program FilesJavajdk1.7.0_80jrelibjsse.jar;C:Program FilesJavajdk1.7.0_80jrelibjce.jar;C:Program FilesJavajdk1.7.0_80jrelibcharsets.jar;C:Program FilesJavajdk1.7.0_80jrelibjfr.jar;C:Program FilesJavajdk1.7.0_80jreclasses
java.vendor : Oracle Corporation
file.separator :
java.vendor.url.bug : http://bugreport.sun.com/bugreport/
sun.io.unicode.encoding : UnicodeLittle
sun.cpu.endian : little
sun.desktop : windows
sun.cpu.isalist : amd64
补充:可以采用System.setProperties设置系统属性
public static void main(String[] args) { System.setProperty("mykey", "myvalue"); String property = System.getProperty("mykey"); System.out.println(property); try { Thread.sleep(100 * 1000); } catch (InterruptedException e) { e.printStackTrace(); } }
我们可以在cmd窗口通过jinfo查看变量
C:UsersAdministrator>jps 1236 8544 MyTest 9384 Jps C:UsersAdministrator>jinfo 8544 Attaching to process ID 8544, please wait... Debugger attached successfully. Server compiler detected. JVM version is 24.80-b11 Java System Properties: java.runtime.name = Java(TM) SE Runtime Environment java.vm.version = 24.80-b11 sun.boot.library.path = C:Program FilesJavajdk1.7.0_80jrein java.vendor.url = http://java.oracle.com/ java.vm.vendor = Oracle Corporation path.separator = ; file.encoding.pkg = sun.io java.vm.name = Java HotSpot(TM) 64-Bit Server VM sun.os.patch.level = sun.java.launcher = SUN_STANDARD user.script = user.country = CN user.dir = E:xiangmuMytest java.vm.specification.name = Java Virtual Machine Specification java.runtime.version = 1.7.0_80-b15 mykey = myvalue
补充:System可以获取系统的环境变量
// 读取单个环境变量 String str = System.getenv("JAVA_HOME"); System.out.println(str); // 读取所有的环境变量 Map<String, String> getenv = System.getenv(); for (Map.Entry<String, String> entry : getenv.entrySet()) { System.out.println(entry.getKey() + "========" + entry.getValue()); }
结果:
C:Program FilesJavajdk1.7.0_80 USERPROFILE========C:UsersAdministrator ProgramData========C:ProgramData PATHEXT========.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC Classpath========.;%JAVA_HOME%lib;%JAVA_HOME%lib ools.jar JAVA_HOME========C:Program FilesJavajdk1.7.0_80 MAVEN_HOME========E:softmavenapache-maven-3.3.9
.......
java的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 |
用户的当前工作目录 |