У меня есть метод, который возвращает jar, в котором загружен определенный класс. Метод приведен ниже. Для некоторых классов приведенная ниже строка возвращает нульЧто это значит, если 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);
}