Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JAR加载Groovy配置文件时出错_Groovy_Jar - Fatal编程技术网

从JAR加载Groovy配置文件时出错

从JAR加载Groovy配置文件时出错,groovy,jar,Groovy,Jar,我有一个在jar中编译的Groovy代码上运行的应用程序 groovy代码正在正确加载/执行,但是,我有一个步骤尝试从JAR的根目录加载groovy配置文件,但失败了 下面的代码来自从JAR运行的groovy类,在这里,它试图从JAR的根目录加载groovy配置文件config.props: URL url = this.getClass().getClassLoader().getResource("config.props") logger.info( url.toString() ) if

我有一个在jar中编译的Groovy代码上运行的应用程序

groovy代码正在正确加载/执行,但是,我有一个步骤尝试从JAR的根目录加载groovy配置文件,但失败了

下面的代码来自从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,并已检查该文件是否存在/拼写是否正确。

好-我想我已解决此问题

看起来错误就在这里

gse.run(url.file, binding)

url.file
向gse传递了完整的绝对路径,包括
file:
协议-我将此更改为“
config.props
”,它似乎已经解决了这个问题(现在有另一个错误,但似乎还需要进一步解决)。

好的-我想我已经解决了这个问题

看起来错误就在这里

gse.run(url.file, binding)

url.file
向gse传递了完整的绝对路径,包括
file:
协议-我将其更改为“
config.props
”,它似乎已经超越了这个限制(现在有另一个错误,但似乎更进一步)。

您已经尝试了绝对路径(带前导斜杠)是吗
this.getClass().getClassLoader().getResource(“/config.props”)
如果是这样的话,我的第二个猜测是将jar解包到某个地方,并检查
config.props
文件是否在您认为的位置is@tim_yates-谢谢,是的,我试过这个。实际上,错误消息是它无法打开URL。如果我在第一行中传入一个垃圾名称,那么我会得到一个不同的错误(我会得到一个错误,说文件不存在)。所以问题似乎不是它找不到文件。你已经尝试了绝对路径(带前导斜杠)是吗
this.getClass().getClassLoader().getResource(“/config.props”)
如果是这样的话,我的第二个猜测是将jar解包到某个地方,并检查
config.props
文件是否在您认为的位置is@tim_yates-谢谢,是的,我试过这个。实际上,错误消息是它无法打开URL。如果我在第一行中传入一个垃圾名称,那么我会得到一个不同的错误(我会得到一个错误,说文件不存在)。所以问题似乎不是它找不到文件。谢谢你的提问和回答——我遇到了完全相同的问题。我用“url.file.text”来获取文本,结果我需要的是“url.text”。你或许应该接受你的答案。谢谢你的提问和回答——我也有同样的问题。我用“url.file.text”来获取文本,结果我需要的是“url.text”。你或许应该接受你的答案。