我在Java中创建了一些类,并将它们组合到'org'命名空间中的单个包中。如何从RingoJS访问它们?
我必须将软件包复制到Ringo的'src / org'目录中,还是必须从脚本中动态修改类路径?
答案 0 :(得分:2)
我终于想出了如何在RingoJS中访问自定义Java类。我一定是非常愚蠢的,从来没有在我眼前看过它。
在Rhino中,要访问自定义Java类,需要将它们添加到Java类路径中。这可能很乏味,尤其是当没有任何编程知识的最终用户尝试安装需要特定Java类在类路径中的CommonJS包时。如我错了请纠正我。像Tusk这样的软件包管理员可能会为您做到这一点,如果您能通知我这样的功能,我将非常感激。但是,据我所知,最终用户有责任将Java类和/或jar文件添加到类路径中。
RingoJS简化了这一点。它提供了一个全局函数addToClasspath(pathName),它将JAR文件或目录添加到类路径中。因此,我们可能在CommonJS包的根目录中有一个Java包或JAR文件,并使用JavaScript文件本身中的addToClasspath函数自动将其添加到类路径中。此外,默认情况下,RingoJS lib目录中的所有JAR文件都包含在类路径中。这大大简化了事情。
出于编程目的,您可以将JAR文件添加到RingoJS lib
目录中。但是,我不推荐它。减少耦合并保持RingoJS lib目录清洁(防止将来的命名空间问题);为了方便最终用户的安装,我建议使用addToClassPath函数。也许它应该在其他基于Rhino的CommonJS实现中实现。