将Spring Boot版本1.5.7.RELEASE导出到可运行的JAR后出现以下错误。我出于安全原因不使用Maven,而是在构建路径中添加了所有JAR。
我在命令下运行
java -jar mailer.jar
然后我在屏幕截图中看到了错误消息
答案 0 :(得分:2)
试试这个
IOUtils.toString(new InputStreamReader(this.getClassLoader().getResourceAsStream("fileName.json")))
OR
new InputStreamReader(new ClassPathResource("fileName.json", this.getClassLoader()).getInputStream())
不要使用 FileReader 或 File
使用InputStreamReader、InputStream等
答案 1 :(得分:1)
似乎应用程序正在尝试通过AbstractFileResolvingResource.getFile()(在堆栈跟踪中向下排几行)访问文件,这在可运行的Spring Boot jar中是不可能的(从IDE)。
尝试使用getInputStream()代替,例如,参见this post。
答案 2 :(得分:0)
因为打包的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();
}