jarがプログラムでforkされている場所から現在の場所を見つける方法はありますか? D:/Jars/myjar.jar
からJarを実行しているとします。コードからそのパスを取得できますか?Jarファイルの自己位置を見つける
@AljoshaBre私はこの
try {
File file = new File(getClass().getProtectionDomain().getCodeSource().getLocation().toURI().getPath());
System.out.println(file.getAbsolutePath());
} catch (Exception e1) {
e1.printStackTrace();
}
は、NPEを投げてみました。 :(
しかし
System.out.println(getClass().getProtectionDomain().getCodeSource().getLocation().getPath());
はclient.jarの表示されるわけではありません、絶対パスそれは瓶の中にある
「のjava」コマンドと呼ばれる場所のパスを返しますユニットテスト中にJARファイルにパッケージ化されていますか? – yegor256
ありがとう@ yegor256しかし、私はユニテストではありません。私は瓶自体を実行しています。 –
期待されるインスタンスの代わりに正確に何が返されたかを知るためには、複数の行でコールのシーケンス( '' getClass()。getProtectionDomain()。..)を分割する必要があります。 –