美文网首页
SpringCloud 读取Jar包中的配置文件

SpringCloud 读取Jar包中的配置文件

作者: MikeMiao | 来源:发表于2018-03-26 14:54 被阅读0次

前言

集成UEditor实现后台自定义上传时,无法正常读取配置文件。

问题

java.nio.file.NoSuchFileException: file:/newkdd.jar!/BOOT-INF/classes!/config.json
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
    at java.nio.file.Files.newByteChannel(Files.java:361)
    at java.nio.file.Files.newByteChannel(Files.java:407)
    at java.nio.file.Files.readAllBytes(Files.java:3152)

分析

本地环境(Windows)可以正常访问,代码如下:

ConfigManager.class.getClassLoader().getResource("config.json").getPath();

测试环境(Linux)路径可以正常得到,但无法正常访问。开始以为不同操作系统导致,但经多次日志输出,证明和此无关。后来考虑和ClassPath有关,经查询java -jar 运行的环境变量有所差异。

解决方法

拷贝文件到新路径,修改如下:

 ConfigManager.class.getClassLoader().getResource("config.json").getPath();
 InputStream inputStream = ConfigManager.class.getClassLoader().getResourceAsStream("config.json");
 File targetFile = new File("config.json");
 FileUtils.copyInputStreamToFile(inputStream, targetFile);

相关文章

网友评论

      本文标题:SpringCloud 读取Jar包中的配置文件

      本文链接:https://www.haomeiwen.com/subject/wfdrcftx.html