取得執行時的各種特性(System.getProperties())


System.getProperties() 可以取得各種特性


F_GetExecProperty.java
package fothers;

import java.util.Iterator;
import java.util.Properties;
import java.util.Set;

/**
 * 取得執行時的各種特性(執行目錄等等)
 * @author FoXx
 *
 */
public class F_GetExecProperty {

    static String execSimerPath = "";

    /**
     * 顯示支援的property(key&value)
     */
    public static void showSupplyProperties() {

        Properties pros = System.getProperties();
        Set s = pros.keySet();
        Iterator it = s.iterator();

        while (it.hasNext()) {
            String keystr = it.next().toString();
            String tempstr2 = System.getProperty(keystr);
            System.out.println("key: " + keystr + " ,value: " + tempstr2);
        }

        // String dir = System.getProperty("user.dir");
        // 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 用戶的當前工作目路

    }
    
    /**
     * 取得jar的所在目錄
     */
    public static String getExecPath() {

        String tempstr = "";
        
        // 使用 System.getProperty 不會受 jsmooth 包檔影響
        String local = System.getProperty("user.dir");

        System.out.println("System.getProperty user.dir: " + local);

        // 針對有單正斜線的路徑進行字串切割必須使用4個\\\\
        // (如D:\workspace\Foxx\CheckLog_copy_0109_fix3)
        String[] spilttemp = local.split("\\\\");

        for (int i = 0; i < spilttemp.length; i++) {
            // if(i<spilttemp.length-1){//-1:取得執行目錄的上層路徑,沒有-1取得全部路徑
            tempstr = tempstr + spilttemp[i] + "\\\\";
            // }
        }
        // execSimerPath = execSimerPath.substring(2);
        System.out.println("tempstr: " + tempstr);
        
        return tempstr;
    }
    
}