0
現在のjarファイルのパスを取得するコードがあります。しかし、奇妙なことがあります:私は2つのjarファイル(2つの異なるプロジェクト)があります。プロジェクトA:これを実行してコンソールに印刷すると、正しく印刷されているように見えます。 しかし、プロジェクトBでは、フォルダだけでなく現在のjarファイルのドライブを表示します。例えばJarファイルのパスを取得する:異なるプロジェクトで異なる結果を返します
:はA.jarとb.JARがフォルダDの両方で:\温度:Bの
結果:/D:/temp/
の結果:./
は(前にドットを有する!!!)
私のコードです:(。)
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);
両方のプロジェクトを起動するために使用するコマンドライン式を投稿できますか? – dash1e
* "私はコードを持っています*なぜですか? –
私のために正しく動作しますが、.classとして実行すると "RealPath"の予想される動作が得られませんbtwを使用しているコンソール/ターミナルは何ですか? –