You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Jar文件时遇FileNotFoundException的解决方案及原因咨询

问题解决方案
  • 修正资源读取路径:将原路径 "resources/data.txt" 修改为 "/data.txt"(如果data.txt直接放在resources根目录下),代码示例:
    InputStream inputStream = CustomTools.class.getResourceAsStream("/data.txt");
    
    若资源在resources的子目录中(比如resources/config/data.txt),则路径改为"/config/data.txt"。
  • 确认资源被正确打包:打开IntelliJ的Project Structure -> Artifacts,检查打包配置中resources目录已被包含,确保打包后文件会被放到Jar的根目录下。
  • 可选:使用ClassLoader读取资源(无需前缀斜杠):
    InputStream inputStream = CustomTools.class.getClassLoader().getResourceAsStream("data.txt");
    
差异原因分析
  • IntelliJ运行时,项目的resources目录是类路径的一部分,此时文件系统中实际存在resources/data.txt这个物理路径,所以原代码的路径能正常找到文件。
  • 打包成Jar后,resources目录下的所有文件会被直接解压到Jar的根目录,Jar内部不存在resources这个文件夹,原路径"resources/data.txt"对应Jar内的位置不存在,因此无法读取。

内容的提问来源于stack exchange,提问作者sathwikhbhat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 00:00:55