Vert.x如何在模块中调用文件

时间:2015-03-02 14:57:35

标签: groovy vert.x

我有一个类似这种结构的模块:

module_root/
    mod.json
    filestore/myfile
    com/my/www/my.groovy(Compiled to my.class)

我想在filestore/myfile中致电my.groovy。我尝试了很多方法来访问该文件,但我失败了。

首先,我尝试使用相对路径。 ../../../filestore/myfilefilestore/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

怎么做?

1 个答案:

答案 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()
祝你好运