我有一個應用程序正在jar中編譯的Groovy代碼上運行。從JAR加載Groovy配置文件時出錯
groovy代碼全部正在加載/正確執行,但是,我有一個嘗試從JAR的根加載groovy-config文件的步驟,但它失敗。
下面的代碼是從正在從JAR運行一個常規類,並且在這裏它試圖從罐子的根加載常規配置文件config.props
:
URL url = this.getClass().getClassLoader().getResource("config.props")
logger.info(url.toString())
if(!url)throw new IllegalArgumentException("'$resource' not found ")
GroovyScriptEngine gse = new GroovyScriptEngine(url)
...
gse.run(url.file, binding)
當運行上述的我得到以下錯誤:
Message: Cannot open URL: jar:file:/usr/local/libs/test-all.jar!/config.props
有沒有人有任何想法如何從jar的根加載文件?我已經臨時將權限設置爲777,並且檢查了文件是否存在/拼寫正確。
你已經嘗試了絕對路徑(帶有斜槓)是啊? 'this.getClass()。getClassLoader()。getResource(「/ config.props」)' –
如果是這樣,我的第二個猜測是將jar解壓到某個地方並檢查config.props文件是否是你認爲它的地方是 –
@tim_yates - 謝謝,是的,我試過了。其實,錯誤信息是它無法打開網址。如果我在第一行傳入一個垃圾名稱,那麼我得到一個不同的錯誤(我得到一個錯誤,說文件不存在)。所以問題似乎不是它無法找到該文件。 – rhinds