現在のjarファイルのパスを取得するコードがあります。しかし、奇妙なことがあります。2つのjarファイル(2つの異なるプロジェクト)があります。プロジェクトAで:これを実行してコンソールに印刷すると、正しく印刷されます。ただし、プロジェクトBでは、フォルダまでではなく、現在のjarファイルのドライブを印刷するだけです。
例:フォルダーD:\ temp内のA.jarとB.jarの両方:
Bの結果:/D:/temp/
Aの結果:(./
前にドットがあります!!!)
これが私のコードです:
String path = getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
String decodedPath = URLDecoder.decode(path, "UTF-8");
String RealPath = decodedPath.substring(0, decodedPath.lastIndexOf("/") + 1);
System.out.println("path: " + path);
System.out.println("decodePath: "+decodedPath);
System.out.println("Real path not include file name: "+RealPath);