/**
* System properties. The following properties are guaranteed to be defined:
* <dl>
* <dt>java.version <dd>Java version number
* <dt>java.vendor <dd>Java vendor specific string
* <dt>java.vendor.url <dd>Java vendor URL
* <dt>java.home <dd>Java installation directory
* <dt>java.class.version <dd>Java class version number
* <dt>java.class.path <dd>Java classpath
* <dt>os.name <dd>Operating System Name
* <dt>os.arch <dd>Operating System Architecture
* <dt>os.version <dd>Operating System Version
* <dt>file.separator <dd>File separator ("/" on Unix)
* <dt>path.separator <dd>Path separator (":" on Unix)
* <dt>line.separator <dd>Line separator ("\n" on Unix)
* <dt>user.name <dd>User account name
* <dt>user.home <dd>User home directory
* <dt>user.dir <dd>User's current working directory
* </dl>
*/
// 被 native修饰 该方法属于 本地方法 会被加载到 本地方法栈中
private static Properties props;
private static native Properties initProperties(Properties props);
/**
获取系统的属性集 如果没有设置(System.setProperty()) 会初始化话
* <tr> <td> <code> java.version </ code> </ td>
* <td> Java运行时环境版本</ td> </ tr>
* <tr> <td> <code> java.vendor </ code> </ td>
* <td> Java运行时环境供应商</ td> </ tr>
* <tr> <td> <code> java.vendor.url </ code> </ td>
* <td> Java供应商URL </ td> </ tr>
* <tr> <td> <code> java.home </ code> </ td>
* <td> Java安装目录</ td> </ tr>
* <tr> <td> <code> java.vm.specification.version </ code> </ td>
* <td> Java虚拟机规范版本</ td> </ tr>
* <tr> <td> <code> java.vm.specification.vendor </ code> </ td>
* <td> Java虚拟机规范供应商</ td> </ tr>
* <tr> <td> <code> java.vm.specification.name </ code> </ td>
* <td> Java虚拟机规范名称</ td> </ tr>
* <tr> <td> <code> java.vm.version </ code> </ td>
* <td> Java虚拟机实现版本</ td> </ tr>
* <tr> <td> <code> java.vm.vendor </ code> </ td>
* <td> Java虚拟机实施供应商</ td> </ tr>
* <tr> <td> <code> java.vm.name </ code> </ td>
* <td> Java虚拟机实现名称</ td> </ tr>
* <tr> <td> <code> java.specification.version </ code> </ td>
* <td> Java运行时环境规范版本</ td> </ tr>
* <tr> <td> <code> java.specification.vendor </ code> </ td>
* <td> Java运行时环境规范供应商</ td> </ tr>
* <tr> <td> <code> java.specification.name </ code> </ td>
* <td> Java运行时环境规范名称</ td> </ tr>
* <tr> <td> <code> java.class.version </ code> </ td>
* <td> Java类格式版本号</ td> </ tr>
* <tr> <td> <code> java.class.path </ code> </ td>
* <td> Java类路径</ td> </ tr>
* <tr> <td> <code> java.library.path </ code> </ td>
* <td>加载库时要搜索的路径列表</ td> </ tr>
* <tr> <td> <code> java.io.tmpdir </ code> </ td>
* <td>默认临时文件路径</ td> </ tr>
* <tr> <td> <code> java.compiler </ code> </ td>
* <td>要使用的JIT编译器的名称</ td> </ tr>
* <tr> <td> <code> java.ext.dirs </ code> </ td>
* <td>扩展目录或目录的路径
* <b>已弃用。</ b> <i>此属性和机制
实现它的*,将来可能会被删除
*发布。</ i> </ td> </ tr>
* <tr> <td> <code> os.name </ code> </ td>
* <td>操作系统名称</ td> </ tr>
* <tr> <td> <code> os.arch </ code> </ td>
* <td>操作系统架构</ td> </ tr>
* <tr> <td> <code> os.version </ code> </ td>
* <td>操作系统版本</ td> </ tr>
* <tr> <td> <code> file.separator </ code> </ td>
* <td>文件分隔符(UNIX上为“/”)</ td> </ tr>
* <tr> <td> <code> path.separator </ code> </ td>
* <td>路径分隔符(UNIX上的“:”)</ td> </ tr>
* <tr> <td> <code> line.separator </ code> </ td>
* <td>行分隔符(在UNIX上为“\ n”)</ td> </ tr>
* <tr> <td> <code> user.name </ code> </ td>
* <td>用户的帐户名称</ td> </ tr>
* <tr> <td> <code> user.home </ code> </ td>
* <td>用户的主目录</ td> </ tr>
*/
// 获取相关属性集
public static Properties getProperties() {
SecurityManager sm = getSecurityManager();
if (sm != null) {
sm.checkPropertiesAccess();
}
return props;
}
public static String getProperty(String key) {
checkKey(key);
SecurityManager sm = getSecurityManager();
if (sm != null) {
sm.checkPropertyAccess(key);
}
return props.getProperty(key);
}
测试 获取所有的属性
package A;
import java.util.Map.Entry;
import java.util.Properties;
/*
* 测试 String.getProperty()
*/
public class SystemTest {
public static void main(String[] args) {
Properties properties = System.getProperties();
// 通过 Map容器 获取所有的属性
for (Entry<Object, Object> entry : properties.entrySet()) {
System.out.println(entry.getKey());
System.out.println(entry.getValue());
System.out.println("*************************");
}
}
}
java.runtime.name
Java(TM) SE Runtime Environment
*************************
sun.boot.library.path
C:\Program Files\Java\jre1.8.0_151\bin
*************************
java.vm.version
25.151-b12
*************************
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
H:\javaee开发\workspace\Text
*************************
java.runtime.version
1.8.0_151-b12
*************************
java.awt.graphicsenv
sun.awt.Win32GraphicsEnvironment
*************************
java.endorsed.dirs
C:\Program Files\Java\jre1.8.0_151\lib\endorsed
*************************
os.arch
amd64
*************************
java.io.tmpdir
C:\Users\lqf\AppData\Local\Temp\
*************************
line.separator
*************************
java.vm.specification.vendor
Oracle Corporation
*************************
user.variant
*************************
os.name
Windows 10
*************************
sun.jnu.encoding
GBK
*************************
java.library.path
C:\Program Files\Java\jre1.8.0_151\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre1.8.0_151/bin/server;C:/Program Files/Java/jre1.8.0_151/bin;C:/Program Files/Java/jre1.8.0_151/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Java\jdk1.8.0_151\bin;C:\Program Files\Java\jdk1.8.0_151\jre\bin;H:\Server\MySQL\bin\mysql.exe\bin;H:\Server\MySQL\bin;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\bin;%;YSTEMROOT%\System32\OpenSSH\;H:\JavaWeb学习\文件资料\maven\maven-3.3.9\apache-maven-3.3.9\bin;H:\JavaWeb学习\文件资料\maven\maven-3.3.9\apache-maven-3.3.9\bin;H:\Ja;aWeb学习\SVN\bin;H;\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib;;;H:\JavaWeb学习\Git\Git\cmd;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;H:\c++\python-3.5.2.exe;C:\Users\lqf\AppData\Local\Microsoft\WindowsApps;H:\JavaWeb学习\Linux;H:\javaee开发\eclipse;;.
*************************
java.specification.name
Java Platform API Specification
*************************
java.class.version
52.0
*************************
sun.management.compiler
HotSpot 64-Bit Tiered Compilers
*************************
os.version
10.0
*************************
user.home
C:\Users\lqf
*************************
user.timezone
*************************
java.awt.printerjob
sun.awt.windows.WPrinterJob
*************************
file.encoding
UTF-8
*************************
java.specification.version
1.8
*************************
java.class.path
C:\Program Files\Java\jre1.8.0_151\lib\resources.jar;C:\Program Files\Java\jre1.8.0_151\lib\rt.jar;C:\Program Files\Java\jre1.8.0_151\lib\jsse.jar;C:\Program Files\Java\jre1.8.0_151\lib\jce.jar;C:\Program Files\Java\jre1.8.0_151\lib\charsets.jar;C:\Program Files\Java\jre1.8.0_151\lib\jfr.jar;C:\Program Files\Java\jre1.8.0_151\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jre1.8.0_151\lib\ext\cldrdata.jar;C:\Program Files\Java\jre1.8.0_151\lib\ext\dnsns.jar;C:\Program Files\Java\jre1.8.0_151\lib\ext\jaccess.jar;C:\Program Files\Java\jre1.8.0_151\lib\ext\jfxrt.jar;C:\Program Files\Java\jre1.8.0_151\lib\ext\localedata.jar;C:\Program Files\Java\jre1.8.0_151\lib\ext\nashorn.jar;C:\Program Files\Java\jre1.8.0_151\lib\ext\sunec.jar;C:\Program Files\Java\jre1.8.0_151\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jre1.8.0_151\lib\ext\sunmscapi.jar;C:\Program Files\Java\jre1.8.0_151\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jre1.8.0_151\lib\ext\zipfs.jar;H:\javaee开发\workspace\Text\build\classes;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\annotations-api.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\catalina-ant.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\catalina-ha.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\catalina-tribes.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\catalina.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\ecj-4.3.1.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\el-api.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\jasper-el.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\jasper.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\jsp-api.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\org.eclipse.jst.server.tomcat.runtime.70.loader.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\servlet-api.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\tomcat-api.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\tomcat-coyote.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\tomcat-dbcp.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\tomcat-i18n-es.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\tomcat-i18n-fr.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\tomcat-i18n-ja.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\tomcat-jdbc.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\tomcat-util.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\tomcat7-websocket.jar;H:\JavaWeb学习\Tomcat\apache-tomcat-7.0.52\lib\websocket-api.jar;H:\javaee开发\workspace\Text\WebContent\WEB-INF\lib\jstl.jar;H:\javaee开发\workspace\Text\WebContent\WEB-INF\lib\standard.jar;H:\javaee开发\eclipse\plugins\org.junit_4.12.0.v201504281640\junit.jar;H:\javaee开发\eclipse\plugins\org.hamcrest.core_1.3.0.v201303031735.jar
*************************
user.name
lqf
*************************
java.vm.specification.version
1.8
*************************
sun.java.command
A.SystemTest
*************************
java.home
C:\Program Files\Java\jre1.8.0_151
*************************
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.8.0_151
*************************
java.ext.dirs
C:\Program Files\Java\jre1.8.0_151\lib\ext;C:\WINDOWS\Sun\Java\lib\ext
*************************
sun.boot.class.path
C:\Program Files\Java\jre1.8.0_151\lib\resources.jar;C:\Program Files\Java\jre1.8.0_151\lib\rt.jar;C:\Program Files\Java\jre1.8.0_151\lib\sunrsasign.jar;C:\Program Files\Java\jre1.8.0_151\lib\jsse.jar;C:\Program Files\Java\jre1.8.0_151\lib\jce.jar;C:\Program Files\Java\jre1.8.0_151\lib\charsets.jar;C:\Program Files\Java\jre1.8.0_151\lib\jfr.jar;C:\Program Files\Java\jre1.8.0_151\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
*************************
特别关注 user.dir 获取用户当前的工作目录
可以引出来 绝对路径
//获取当前文件的绝对路径
//通过 user.dir 获得当前文件的绝对路径 + 文件分隔符 + 通过反射 获得文件的 完整文件名 然后将. 替换成 \\ 转义
System.out.println( System.getProperty("user.dir")+File.separator+SystemTest.class.getName().replace(".", "\\")
//H:\javaee开发\workspace\Text\A\SystemTest