ちょっと先の未来クイズ第4問

javaの実行可能jarファイルの中で、そのjarファイル名を取得する方法はどうすればよいでしょうか?

なお、クラスファイル名は次の方法で取得できています。
public class AAA {
public static void main(String[] args) {
System.err.println( AAA.class.getResource("AAA.class").toString());
}
}

2011年10月16日

A 回答 (2件)

ちょっと確認したいだけならこれで


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("!"));
すれば良いです。

この回答への補足

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

補足日時:2011/10/18 22:59
    • good
    • 0

できますよ。


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

jarに含まれているクラスなら
file:jarファイル名!クラス名
が取れますけど?
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/10/19 07:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報