JAR Spring Boot uber: не может быть преобразован в абсолютный путь к файлу, потому что он не находится в файловой системе - PullRequest
0 голосов
/ 07 ноября 2018

Я получил следующую ошибку после экспорта Spring Boot версии 1.5.7.RELEASE в работающий JAR. Я не использую maven из-за соображений безопасности, и я добавил все JAR-файлы в путь сборки.

Я запускаю ниже команды

java -jar mailer.jar

тогда я получил ошибку, как вы видите на скриншоте

enter image description here

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Похоже, что приложение пытается получить доступ к файлу через AbstractFileResolvingResource.getFile () (несколько строк внизу в трассировке стека), что невозможно из работающей весенней загрузочной фляги (это может работать при запуске из IDE).

Попробуйте вместо этого использовать getInputStream (), см., Например, этот пост .

0 голосов
/ 07 ноября 2018

Потому что, когда ваш ресурс не существует в упакованном uber-jar, возникает проблема с classpath. Используйте решение как это

String fuu = "";
ClassPathResource classPathResource = new ClassPathResource("static/foo.txt");
try {
    byte[] binaryData = FileCopyUtils.copyToByteArray(classPathResource.getInputStream());
    fuu = new String(binaryData, StandardCharsets.UTF_8);
} catch (IOException e) {
    e.printStackTrace();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...