美文网首页
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