簡體   English   中英

在JAR中找不到類路徑資源(沒有這樣的文件或目錄)

[英]Can't find classpath resource in JAR (No such file or directory)

我正在嘗試讀取一個文件,該文件已作為類路徑中的資源提供

FileInputStream serviceAccount = new FileInputStream("firebase-service-account.json");

我已經嘗試過絕對地通過完整路徑訪問資源,並且作為流沒有任何作用。

我的目標文件結構如下所示:

在此處輸入圖片說明

當我打開JAR時,我可以看到資源已正確捆綁,盡管我不確定它們是否正在流式傳輸。

在此處輸入圖片說明

如何訪問我的資源?

Exception in thread "main" java.io.FileNotFoundException: java.io.BufferedInputStream@27d6c5e0 (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at com.lumos.xlsx_manager.es.da.Firebase.main(Firebase.java:146)

您可以嘗試這樣的操作,假設您只需要InputStream,而不需要FileInputStream

InputStream serviceAccount = null;
try{
    File f = new File("firebase-service-account.json");
    if (f.exists()){
        serviceAccount = new FileInputStream(f);
    } else {
        URL url = this.getClass().getResource("firebase-service-account.json");
        serviceAccount  = url.openConnection().getInputStream();
    }

    //Now do whatever you are doing with the InputStream...

    }catch (Exception e){
        e.printStackTrace();
    } finally{
        if (serviceAccount  != null) {
            try {
                serviceAccount .close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM