我有一个在jar中编译的Groovy代码上运行的应用程序。
groovy代码正在被正确加载/执行,但是,我有一个步骤尝试从JAR的根目录加载groovy-config文件,但它失败了。
下面的代码来自一个从JAR运行的groovy类,在这里它试图从jar的根目录加载groovy配置文件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,并检查文件是否存在/拼写正确。
答案 0 :(得分:1)
好的 - 我想我已经解决了这个问题。
看起来错误在
gse.run(url.file, binding)
url.file
将包含file:
协议的完整绝对路径传递给gse - 我将其更改为“config.props
”并且它似乎已经超过了这个(还有另一个错误)现在,但似乎还在继续)。