• ベストアンサー

実行可能jarファイルのファイル名取得

javaの実行可能jarファイルの中で、そのjarファイル名を取得する方法はどうすればよいでしょうか? なお、クラスファイル名は次の方法で取得できています。 public class AAA { public static void main(String[] args) { System.err.println( AAA.class.getResource("AAA.class").toString()); } } 2011年10月16日

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ちょっと確認したいだけならこれで Foo foo = new Foo(); Class target = foo.getClass(); URL location = target.getResource("/" + target.getName().replaceAll("\\.", "/") + ".class"); String path = location.getPath(); System.out.println(path); file:/C:/lib/bar.jar!/baz/Foo.class なんて感じになるので、余分なとこを削りたかったら path.substring("file:".length(), path.lastIndexOf("!")); すれば良いです。

RASUM2
質問者

補足

satomi3951様、ありがとうございます。 Fooクラス名を表示できることがわかりました。 ただ、質問致しているのは、「jarファイル名の表示」です。jarファイル名を取得できますでしょうか。 2011年10月18日

その他の回答 (1)

回答No.2

できますよ。 できてないなら、jarの中のクラスを読まずに、クラスパスにそのクラスがいて、 そっち読み込んでるんじゃないの? jarに含まれているクラスなら file:jarファイル名!クラス名 が取れますけど?

RASUM2
質問者

お礼

satomi3951様、ありがとうございます。 最初に頂いた回答に対する確認が不十分でした。 実行可能jarファイルを作成して再度やってみましたら「file:jarファイル名!クラス名」になっていました。 失礼しました。 2011年10月19日

関連するQ&A

専門家に質問してみよう