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

Linux 下 Java 檔案路徑寫死 D:/ 導致 FileNotFoundException

     編輯:程式設計疑難解答

錯誤堆疊

java.io.FileNotFoundException: D:/TradeOrder.xls (No such file or directory)

根本原因

代碼中使用 Windows 絕對路徑 D:/backTradeOrder.xls,Linux 檔案系統無 D:/ 掛載點,導致 FileOutputStream 找不到路徑。

跨平台路徑處理最佳實踐

  1. 使用相對路徑或配置屬性:
    // application.properties
    file.upload.dir=/data/upload/
    @Value("${file.upload.dir}") String uploadDir;
  2. Java NIO Paths 自動適配分隔符:
    Path path = Paths.get(uploadDir, "backTradeOrder.xls");
    Files.createDirectories(path.getParent());
    try (OutputStream out = Files.newOutputStream(path)) {
        workbook.write(out);
    }
  3. 避免硬編碼 File.separator,交給 Paths.get() 或 File(String parent, String child) 建構子處理。

快速修正(臨時)

將 D:/ 改為 Linux 實際掛載路徑(如 /home/app/upload/),並確保目錄存在且應用進程有寫入權限。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved