簡體   English   中英

未從 Gradle 項目中找到 Intellij 資源

[英]Intellij resource not found from Gradle Project

我有一個庫(用 Gradle 7.4 構建),其結構如下:

|
|- src
| -  main
| - - java
| - - resources

在這個庫中,我有一個 class 加載這樣的資源文件:

var resource=this.getClass().getResource("sample.properties");

我的 sample.properties 文件放在 src/main/resources 下

構建庫時,Gradle 將編譯后的類放在 build/classes/java/main 下,資源放在 build/resources/main 下。

現在,我有一個應用程序,它是一個非 Gradle 項目並且對我的庫具有模塊依賴性。 我的應用程序使用庫,然后加載資源文件。 現在,當我運行我的應用程序時,調試器聲明它在 build/classes/java/main/mypackage/sample.properties 下查找資源文件。

但是,如前所述,該資源位於 build/resources/main 下。
后面的資源是null。
我的問題:我的圖書館如何相應地加載我的資源文件?

更新 24.11:我忘了提到這適用於 Eclipse(因為它將類和資源復制到同一目錄)但不適用於 Intellij,現在我正在嘗試使用 Intellij IDEA 修復此問題。

如果使用您的庫(需要一些資源文件)的父應用程序是一個非 gradle/非 Maven 項目,正在使用普通 java 命令構建/編譯/運行。

您可以嘗試在java命令中將資源文件夾作為類路徑從外部提供(使用-cp選項)

java -cp /path/to/resource application.jar

另一種選擇是在庫 API(方法、class 構造函數等)中顯式請求資源文件,這需要由庫的用戶(父應用程序)提供。 這將消除在預定義路徑中丟失文件時的運行時崩潰。

暫無
暫無

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

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