Java Class.getResourceAsStream в классе начальной загрузки не находит ресурсJAVA

Программисты JAVA общаются здесь
Anonymous
Java Class.getResourceAsStream в классе начальной загрузки не находит ресурс

Сообщение Anonymous »

У меня есть следующий код:

Код: Выделить всё

public class Test {
public static void main(String[] args) {
System.out.println(Integer.class.getResourceAsStream("Test.class"));
}
}
в Test.java. Когда я компилирую и запускаю это как java Test, код печатает значение null.
Однако в документации для Class.getResourceAsStream (для Java 21) четко указано

Если этот объект Class был загружен загрузчиком классов начальной загрузки, метод делегирует ClassLoader.getSystemResourceAsStream(java.lang.String).

Насколько я понимаю, системный загрузчик будет загружать классы в текущем каталоге. И действительно, вызов ClassLoader.getSystemResourceAsStream("Test.class") правильно возвращает поток. Так почему же вызов Integer.class.getResourceAsStream("Test.class") не работает?
В Java 8, но не в Java 21, вызов int.class.getResourceAsStream("Test.class") фактически возвращает поток. Однако Integer.class.getResourceAsStream("Test.class") по-прежнему возвращает значение null.

Подробнее здесь: https://stackoverflow.com/questions/797 ... g-resource

Вернуться в «JAVA»