В Java вы можете загружать все виды ресурсов с использованием одного и того же API, но с разными URL-протоколами:
file:///tmp.txt
http://127.0.0.1:8080/a.properties
jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class
Это красиво отделяет фактическую загрузку ресурса от приложения, которое нуждается в ресурсе, а так как URL-адрес - это просто String, загрузка ресурсов также очень легко настраивается.
Есть ли протокол для загрузки ресурсов с использованием текущего загрузчика классов? Это похоже на протокол Jar, за исключением того, что мне не нужно знать, какой jar файл или папка класса, из которой идет ресурс.
Я могу это сделать, используя Class.getResourceAsStream("a.xml")
, но это потребует от меня использования другого API и, следовательно, изменений в существующих код. Я хочу иметь возможность использовать это во всех местах, где я могу указать URL-адрес ресурса уже, просто обновив файл свойств.