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 Files\Java\jdk1.7.0_80\jre\bin
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:\xiangmu\Mytest
java.runtime.version : 1.7.0_80-b15
java.awt.graphicsenv : sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs : C:\Program Files\Java\jdk1.7.0_80\jre\lib\endorsed
os.arch : amd64
java.io.tmpdir : C:\Users\ADMINI~1\AppData\Local\Temp\
line.separator :
java.vm.specification.vendor : Oracle Corporation
user.variant :
os.name : Windows 8.1
sun.jnu.encoding : GBK
java.library.path : C:\Program Files\Java\jdk1.7.0_80\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;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:\oraclexe\app\oracle\product\11.2.0\server\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;E:\soft\apache-maven-3.5.3\bin;C:\WINDOWS\System32\OpenSSH\;E:\git\Git\cmd;E:\SVN\bin;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;E:\soft\maven\apache-maven-3.3.9\bin;C:\Program Files\MySQL\MySQL Server 5.7\bin;C:\Program Files\Java\jdk1.7.0_80\bin;E:\git\Git\bin;E:\git\Git\usr\bin;E:\git\Git;C:\Program Files\Java\jdk1.7.0_80\jre\bin;D:\zdcontomcat\zdc8\lo\program;;E:\soft\eclipse\eclipse-jee-mars-1-win32-x86_64\eclipse;;.
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:\Users\Administrator
user.timezone :
java.awt.printerjob : sun.awt.windows.WPrinterJob
file.encoding : UTF-8
java.specification.version : 1.7
java.class.path : E:\xiangmu\Mytest\bin;E:\xiangmu\Mytest\WebContent\WEB-INF\lib\log4j-1.2.16.jar;E:\xiangmu\Mytest\WebContent\WEB-INF\lib\slf4j-api-1.5.10.jar;E:\xiangmu\Mytest\WebContent\WEB-INF\lib\slf4j-log4j12-1.5.10.jar;E:\tomcat\apache-tomcat-7.0.88\lib\annotations-api.jar;E:\tomcat\apache-tomcat-7.0.88\lib\catalina-ant.jar;E:\tomcat\apache-tomcat-7.0.88\lib\catalina-ha.jar;E:\tomcat\apache-tomcat-7.0.88\lib\catalina-tribes.jar;E:\tomcat\apache-tomcat-7.0.88\lib\catalina.jar;E:\tomcat\apache-tomcat-7.0.88\lib\ecj-4.4.2.jar;E:\tomcat\apache-tomcat-7.0.88\lib\el-api.jar;E:\tomcat\apache-tomcat-7.0.88\lib\jasper-el.jar;E:\tomcat\apache-tomcat-7.0.88\lib\jasper.jar;E:\tomcat\apache-tomcat-7.0.88\lib\jsp-api.jar;E:\tomcat\apache-tomcat-7.0.88\lib\servlet-api.jar;E:\tomcat\apache-tomcat-7.0.88\lib\tomcat-api.jar;E:\tomcat\apache-tomcat-7.0.88\lib\tomcat-coyote.jar;E:\tomcat\apache-tomcat-7.0.88\lib\tomcat-dbcp.jar;E:\tomcat\apache-tomcat-7.0.88\lib\tomcat-i18n-es.jar;E:\tomcat\apache-tomcat-7.0.88\lib\tomcat-i18n-fr.jar;E:\tomcat\apache-tomcat-7.0.88\lib\tomcat-i18n-ja.jar;E:\tomcat\apache-tomcat-7.0.88\lib\tomcat-jdbc.jar;E:\tomcat\apache-tomcat-7.0.88\lib\tomcat-util.jar;E:\tomcat\apache-tomcat-7.0.88\lib\tomcat7-websocket.jar;E:\tomcat\apache-tomcat-7.0.88\lib\websocket-api.jar
user.name : Administrator
java.vm.specification.version : 1.7
sun.java.command : com.test.MyTest
java.home : C:\Program Files\Java\jdk1.7.0_80\jre
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 Files\Java\jdk1.7.0_80\jre\lib\ext;C:\WINDOWS\Sun\Java\lib\ext
sun.boot.class.path : C:\Program Files\Java\jdk1.7.0_80\jre\lib\resources.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\rt.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\jce.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.7.0_80\jre\classes
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:\Users\Administrator>jps 1236 8544 MyTest 9384 Jps C:\Users\Administrator>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 Files\Java\jdk1.7.0_80\jre\bin 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:\xiangmu\Mytest 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 Files\Java\jdk1.7.0_80 USERPROFILE========C:\Users\Administrator ProgramData========C:\ProgramData PATHEXT========.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC Classpath========.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar JAVA_HOME========C:\Program Files\Java\jdk1.7.0_80 MAVEN_HOME========E:\soft\maven\apache-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 | 用户的当前工作目录 |