1
特定のクラスがロードされているjarを返すメソッドがあります。この方法は以下の通りです。 一部のクラスでは、次の行はnullを返します。class.getProtectionDomainがnullを返すとはどういう意味ですか
ProtectionDomain protectionDomain = c.getProtectionDomain();
どのような状況でそれがnullであるかを理解したいと思います。コードがコンパイルされるので、クラスがコンパイル時に可視であり、特定のクラスが存在するプロジェクトの依存関係もコンパイル時の依存関係だと思います。ここ
メソッド
public static String jarFor(Class c) {
ProtectionDomain protectionDomain = c.getProtectionDomain();
CodeSource codeSource = protectionDomain.getCodeSource();
URL url = codeSource.getLocation();
String path = url.getPath();
if (Os.isWindows() && path.startsWith("/")) {
path = path.substring(1);
}
return URLDecoder.decode(path);
}