бесплатная учетная запись разработчика Amazon S3 для тестирования

JVM по умолчанию classloader будет использовать родителя-classloader для загрузки ресурсов сначала: deletegate-parent-classloader .

Lifepaths.class.getClass() classloader bootstrap classloader, таким образом getResourceAsStream будет искать $JAVA_HOME только, независимо от пользователя, предоставленного classpath. Очевидно, Lifepaths.txt не там.

Lifepaths.class classloader system classpath classloader, таким образом getResourceAsStream будет искать пользовательский classpath, и Lifepaths.txt там.

При использовании java.lang.Class#getResourceAsStream(String name), имя, которое не является запуском с [1 117]' / ', будет добавлено с [1 110] как префикс. Если Вы хотите, избегают этого, с помощью [1 111]. Например:

ClassLoader loader = Thread.currentThread().getContextClassLoader();
String resourceName = "Lifepaths.txt";
InputStream resourceStream = loader.getResourceAsStream(resourceName); 
7
задан madhead 26 September 2019 в 09:32
поделиться