みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

実行可能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日

投稿日時 - 2011-10-16 20:44:24

QNo.7075878

困ってます

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

ちょっと確認したいだけならこれで
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("!"));
すれば良いです。

投稿日時 - 2011-10-17 11:11:11

補足

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

投稿日時 - 2011-10-18 22:59:48

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

できますよ。
できてないなら、jarの中のクラスを読まずに、クラスパスにそのクラスがいて、
そっち読み込んでるんじゃないの?

jarに含まれているクラスなら
file:jarファイル名!クラス名
が取れますけど?

投稿日時 - 2011-10-19 06:37:07

お礼

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

投稿日時 - 2011-10-19 07:01:27

あなたにオススメの質問