RingoJS 与 Java环境集成

RingoJS本身就是构建于Mozilla Rhino之上,Mozilla Rhino是啥——一个Java实现的JavaScript引擎、执行环境…… 这句话对于外人来说,一定觉得很绕……   Java Integration   Ringo的底层JavaScript Engine——Rhino,可以访问任何装载到JVM环境中的Java Class。这就给了Ringo开发者几乎全部的Java功能,Ringo开发者可以在程序中使用Java的丰富库函数。在Ringo中,我们可以访问Java Class的静态(static)方法,访问常量、创建新的Java对象等等。 常用如下三种方式,将Java类文件或者库(library,jar文件)集成进Ringo: 将相关的Java Class或者library放入运行环境的classpath(Ringo本质是一个Java环境) 将Java library(jar文件)放入Ringo的lib文件夹 将Java library(jar文件)或者java package(文件夹)添加到classpath中(配置classpath) 方法1和2都可以seamlessly集成Java对象,Ringo程序中不需显示指定什么java class或者library被集成…… 当然,Java的library和packages也可以在Ringo程序运行过程中显式添加到classpath中,完成集成,Ringo中使用addToClasspath(pathName)来实现这个功能。addToClasspath只有一个参数:pathName,对应要加入的library或者package的绝对路劲。如果想象引入module一样添加java对象,可以使用module.resolve(pathName)方法: addToClasspath(module.resolve(“./library.jar”)) 添加package: addToClasspath(module.resolve(“./package”));   Best Practice: 通常来说,在Ringo模块中,使用addToClasspath()手工加入需要的library或者package是更优选择,原因如下: 最终用户或者程序员,在下载了你的Ringo package后,不需要修改、配置他们的classpath。 不需要手工copy  library到他们的Ringo lib 文件夹 通过addToClasspath()显式添加library和package,如果路径不正确,会抛出异常提示 Explicity adding specific libraries & packages to the classpath serves as a form of documentation for programmers Examples: