首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 文件操作報「系統找不到指定路徑」的常見原因與絕對路徑解決方案

     編輯:程式設計疑難解答

典型錯誤

File file = new File("data.txt"); // 相對路徑
FileInputStream fis = new FileInputStream(file); // FileNotFoundException

原因

相對路徑基於「當前工作目錄」(CWD),IDE 運行時 CWD 通常是專案根目錄,打包後可能是 JAR 所在目錄或系統臨時目錄,導致路徑解析不一致。

解決方案

  1. 絕對路徑:new File("/opt/app/data/data.txt")(部署時固定)。
  2. 類路徑資源(推薦讀取配置/模板):
    InputStream is = MyClass.class.getResourceAsStream("/data.txt");
    // 或
    InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("data.txt");
  3. 外部化配置:使用 @Value("${data.path}") 注入路徑,部署時通過環境變量指定。

調試技巧

System.out.println("CWD = " + new File(".").getAbsolutePath());
System.out.println("File absolute = " + file.getAbsolutePath());
System.out.println("Exists = " + file.exists());
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved