String.getProperty()解析

  /**
     * 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


 

公開された19元の記事 ウォンの賞賛8 ビュー4132

おすすめ

転載: blog.csdn.net/paohui001lqp/article/details/100080773