在RCP中使用Groovy的路径问题

Groovy是在JVM之上的一种动态脚本语言,在使用Java开发程序的过程中,我们是可以将一些功能用Groovy来实现,这样可以减少很多的代码量。

最近在开发一个RCP程序,我尝试了一下把Groovy集成进来。大家都知道,在开发RCP程序的时候,有的时候路径问题真的令人头疼,比如我边的一篇文站里面所说的:db4o与RCP的集成问题,主要也是路径。

在集成Groovy的过程中,首先需要导入groovy的jar包,然后我在src目录下新建一个package,来放.groovy的源文件,之后我们就可以在这个包下面写groovy了。这些都是很简单的,主要是我在java程序中如何执行groovy呢?grovvy提供了很好的方法,比如GroovyShell和GroovyScriptEngine等等。我使用的是GroovyShell,使用GroovyShell的话,就要考虑到路径问题,怎么能够找到groovy的源文件,我试了几个方法,都没有成功(不能使用绝对路径)。在网上搜了一下,找到如下方法,可以很好的解决:
InputStream is =  this.getClass().getClassLoader().getResourceAsStream("/A/B/groovy/script.groovy");

其中,A,B代表了在src目录下的A.B.groovy包,script是源文件的名字。

你可能感兴趣的:(jvm,脚本,groovy)