1. ホーム

[解決済み】javaクラスがどこからロードされるかを探す

2022-04-11 20:39:49

質問

javaのクラスローダーが実際にクラスをロードする場所をプログラム的に見つける方法を知っている人はいますか?

私はしばしば、クラスパスが非常に長くなり、手動で検索することができない大規模なプロジェクトで作業しています。 最近 問題 クラスローダーが間違ったバージョンのクラスをロードしていた。

では、どうすればクラスローダーが実際のクラスファイルをディスク上のどこから持ってきているかを教えてくれるのでしょうか?

編集してください。 クラスローダーが実際にバージョンの不一致(または他の何か)のためにクラスの読み込みに失敗した場合はどうなるのでしょうか?

解決方法は?

以下はその例です。

package foo;

public class Test
{
    public static void main(String[] args)
    {
        ClassLoader loader = Test.class.getClassLoader();
        System.out.println(loader.getResource("foo/Test.class"));
    }
}

これがプリントアウトされる。

file:/C:/Users/Jon/Test/foo/Test.class