【參考文章】: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
如果文章對您有所幫助,可以點一下推薦哦