天天看點

Java中路徑相關的擷取方式

【參考文章】:Java檔案路徑(getResource)

【參考文章】:關于java:如何擷取正在運作的JAR檔案的路徑?

【參考文章】:關于Class.getResource和ClassLoader.getResource的路徑問題

【參考文章】:java中File類的getPath(),getAbsolutePath(),getCanonicalPath()差別

【參考文章】:關于System.getProperty("user.dir")的研究

1. 代碼示例

// 目前 jar包 或者 位元組碼檔案 所在的路徑
        System.out.println( NativeCpp.class.getProtectionDomain().getCodeSource().getLocation().getPath());
        // 輸出:/E:/project/service_core/s17-blackbox/target/classes/

        // classpath的目錄
        System.out.println( NativeCpp.class.getClassLoader().getResource("").getPath());
        // 輸出:/E:/project/service_core/s17-blackbox/target/classes/

        // classpath的目錄
        System.out.println( NativeCpp.class.getResource("/").getPath());
        // 輸出:/E:/project/service_core/s17-blackbox/target/classes/

        // 目前類(class)所在包(package)的目錄
        System.out.println( NativeCpp.class.getResource("").getPath());
        // 輸出:/E:/project/service_core/s17-blackbox/target/classes/com/streamax/s17/fms/business/jni/

        // 執行 java -jar  指令的位置
        System.out.println( System.getProperty("user.dir"));
        // 輸出:E:\project\service_core

        // 執行 java -jar  指令的位置
        System.out.println( new File("").getCanonicalPath());
        // 輸出:E:\project\service_core      

如果文章對您有所幫助,可以點一下推薦哦