【问题标题】:Error Caused by: java.io.FileNotFoundException for file under src/main/resources/config/env/dev2 in SpringBoot 2.0 application错误原因:SpringBoot 2.0 应用程序中 src/main/resources/config/env/dev2 下的文件的 java.io.FileNotFoundException
【发布时间】:2020-02-07 01:41:41
【问题描述】:

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File(propertyFile))));

在这里,我尝试将 propertyFile 指定为 "/envsettings/xdev2/env.properties""envsettings/xdev2/env.properties",但仍然得到相同的文件 Not found 问题。

当我看到目录结构时,我看到 C:\Users\primary\git\dev\SpringBoot\Originations\target\odyssey\WEB-INF\classes\config75\envsettings\dev2\env.properties强>

有人可以帮忙吗?

【问题讨论】:

  • File 构造函数需要 file system 上的 file 的路径。路径可以是绝对路径(“C:\Users\primary\git\dev\SpringBoot\Originations\target\odyssey\WEB-INF\classes\config75\envsettings\dev2\env.properties”),或相对于当前目录,即执行 java 命令的目录。不要使用文件 IO 来读取从类路径加载的资源,这些资源至少在生产中会驻留在应用程序的 jar 文件中。使用MyClass.class.getResourceAsStream("/config75/envsettings/dev2/env.properties")。 javadoc 是你的朋友。
  • 可以添加项目结构吗?不是来自目标的那个

标签: java spring-boot tomcat filenotfoundexception web-inf


【解决方案1】:

永远不要像那样从类路径访问资源。使用Class.getResourceAsStreamClassLoader.getResourceAsStream

BufferedReader br = new BufferedReader(
    this.getClass().getResourceAsStream("path/relative/to/classpath/resource.file")
);

【讨论】:

    猜你喜欢
    • 2021-04-23
    • 2015-03-22
    • 2018-09-16
    • 1970-01-01
    • 2015-06-18
    • 2021-09-14
    • 2014-06-26
    • 2015-02-26
    相关资源
    最近更新 更多