簡體   English   中英

可運行jar中的資源文件位置

[英]Resource file location in runnable jar

我有一個Maven項目,在dir src/main/resources下有資源文件。 我注意到在Eclipse中,當我運行項目時,源文件被復制到target/classes而沒有資源目錄,只是資源目錄下的文件。 在此處輸入圖片說明

但是,通過使用Right clieck on the project -> Jar -> Runnable Jar導出到可運行的jar之后,這些資源文件位於資源目​​錄下:

在此處輸入圖片說明

如您所見,在兩種情況下,資源文件位於不同的位置。

及以下代碼在Eclipse中運行良好,但在可運行的jar中不起作用

getClassLoader().getResourceAsStream("database.properties")

如何解決這個問題呢? 我希望以上代碼在兩種情況下都能正常工作。

不幸的是,這是兩個不同的構建過程,大多數項目將使用一個構建系統。 付出很多努力卻沒有帶來很多好處。 您也可以從eclipse啟動mvn package 我會推薦Maven,因為它是一個標准。 如果必須這樣做,這里有一些想法

  • 在啟動過程中,測試以查看/resources存在,並為所有路徑添加前綴
  • 如果是單個文件,則可以測試並退回到第二條路徑
  • 調整pom.xml,將您的資源文件夾放在/ resource

答案很簡單-在類似情況下不要相信Eclipse或任何IDE。 僅考慮將在單獨環境中運行的單獨構建。 使用嵌入在IDE應用程序或Web服務器中的測試也是如此-這是大量潛在問題的根源

暫無
暫無

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

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