Я использую плагин Spring boot maven для упаковки приложения в виде jar-файла.
Он может найти прямой запуск файла ресурсов в Itellij IDE,
Но он не может найти файл ресурсов после, он отображает ошибку как:
java.io.FileNotFoundException: ресурс пути к классу [jmxremote.password] не может быть преобразован в абсолютный путь к файлу, поскольку он не находится в файловой системе: jar: file: /home/XXX/target/YYY.jar! / BOOT-INF / классы! /jmxremote.password
Однако файл "jmxremote.password" действительно существует в файле jar.
private Properties initialJMXServerProperties() throws RuntimeException {
URL passwordURL = JMXConfig.class.getClassLoader().getResource(passwordFileName);
URL accessURL = JMXConfig.class.getClassLoader().getResource(accessFileName);
String passFile = Optional.ofNullable(passwordURL).map(URL::getPath).orElseThrow(() -> new RuntimeException("JMX password file not exist"));
String accessFile = Optional.ofNullable(accessURL).map(URL::getPath).orElseThrow(() -> new RuntimeException("JMX access file not exist"));
Properties properties = new Properties();
properties.setProperty(PASSWORD_FILE_PROP, passFile);
properties.setProperty(ACCESS_FILE_PROP, accessFile);
return properties;
}