簡體   English   中英

來自外部jar的類在加載Resource時引發異常

[英]A class from external jar throws exception while loading Resource

嗨,我正在一個依賴於外部jar的Maven項目中,該jar具有一個具有以下loader()方法的ConfigLoader類。

public class ConfigLoader {
   public void initialize() {
      loader();
   }
   private static void loader() {
      URL configURL = ConfigLoader.getClass().getResource("runtimeConfiguration.xml");
      //some other method calls to which configURL is an argument.
   }
   //other methods of ConfigLoader class
}

目錄結構是這樣的-

src
|...main
|.......java
|.......resources
|................dev
|................prod

開發人員和生產人員都有一個名為runtimeConfiguration.xml的文件,使用此類的代碼為

public class Application {
   private Application application;
   public static void main(String []args){
      application = new Application();
      application.invokeConfigLoader();
      //additional code
   }
   private void invokeConfigLoader() {
      configLoader.initialize(); 
   }
}

我得到的錯誤是

could not find: runtimeConfiguration.xml
and the exception is thrown at the getResource() line in the class from jar.

我嘗試將dev文件夾添加到classpath中,但仍然是相同的錯誤。 我想從linux終端運行此代碼,而我從主干目錄(我所有的外部jar和資源文件夾位於maven構建之后的位置)給出的命令是-

java -cp /resources/dev/*:configuration-loader.jar 

我正在使用intelliJ 2017.2,並且還嘗試將resources / dev文件夾添加為模塊依賴項,但是我一直遇到相同的錯誤。 資源文件夾通過項目結構設置添加為庫。 我試圖進行大量搜索,但未發現與此問題有關的任何問題。 由於我是這個基於環境的開發的新手,請幫助我。 謝謝!

ConfigLoader.getClass().getResource("runtimeConfiguration.xml"); 會嘗試從定義runtimeConfiguration.xml的同一包中而不是從classpath的根目錄中獲取runtimeConfiguration.xml 嘗試將/附加到runtimeConfiguration.xml

這應該可以工作ConfigLoader.getClass().getResource("/runtimeConfiguration.xml"); ConfigLoader.getClass().getResource("/dev/runtimeConfiguration.xml"); 取決於您如何向類路徑添加資源。

有關更多信息,請參見javadoc

暫無
暫無

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

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