0

我在 Java 中创建了一些类,并将它们组合到“org”命名空间中的单个包中。如何从RingoJS访问它们?

我必须将包复制到 Ringo 的“src/org”目录中,还是必须从脚本中动态修改类路径?

4

1 回答 1

2

我终于弄清楚了如何在 RingoJS 中访问自定义 Java 类。我一定是真的很愚蠢,以前从未在我的眼前看到过它。

在 Rhino 中,要访问自定义 Java 类,您需要将它们添加到 Java 类路径中。这可能很乏味,尤其是当没有任何编程知识的最终用户尝试安装需要特定 Java 类位于类路径中的 CommonJS 包时。如我错了请纠正我。像Tusk这样的包管理器可能会为你做到这一点,如果你能通知我这样的功能,我将非常感激。但是,据我所知,将 Java 类和/或 jar 文件添加到类路径是最终用户的责任。

RingoJS 大大简化了这一点。它提供了一个全局函数addToClasspath(pathName),它将 JAR 文件或目录添加到类路径中。因此,我们可能在 CommonJS 包的根目录下有一个 Java 包或 JAR 文件,并使用 JavaScript 文件本身中的 addToClasspath 函数将其自动添加到类路径中。此外,默认情况下,RingoJS lib 目录中的所有 JAR 文件都包含在类路径中。这大大简化了事情。

出于编程目的,您可以将 JAR 文件添加到 RingoJSlib目录。但是,我不会推荐它。减少耦合并保持 RingoJS lib 目录干净(防止未来的命名空间问题);为了使最终用户的安装更容易,我建议使用 addToClassPath 函数。也许它也应该在其他基于 Rhino 的 CommonJS 实现中实现。

于 2011-08-29T14:04:11.917 回答