[英]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.