我有一个类似这种结构的模块:
module_root/
mod.json
filestore/myfile
com/my/www/my.groovy(Compiled to my.class)
我想在filestore/myfile
中致电my.groovy
。我尝试了很多方法来访问该文件,但我失败了。
首先,我尝试使用相对路径。 ../../../filestore/myfile
和filestore/myfile
都失败了。 No such file or directory
。
new FileInputStream('../../../filestore/myfile').withStream {
// ...
}
然后我尝试使用绝对路径,我不知道如何获取模块的绝对路径。我尝试让my.groovy
路径使用此代码:
scriptFile = getClass().protectionDomain.codeSource.location.path
但是当我执行vertx runzip mymodule.zip
时,我得到一个例外:
java.lang.NullPointerException: Cannot get property 'location' on null object
怎么做?
答案 0 :(得分:0)
对我来说这是有效的..请告诉我是否适合您:
this is js, I don't know groovy but I suppose than must be similar
var CURRENT-DIRECTORY = new java.io.File("").getAbsolutePath()
然后你可以使用字符串连接
CURRENT-DIRECTORY+"/filestore/myfile/mysuperFile.groovy" <--notice the /
记住,响应是一个缓冲区,也许你必须将它转换为字符串
return response.toString()
祝你好运