【问题标题】:How to access custom Java classes from RingoJS?如何从 RingoJS 访问自定义 Java 类?
【发布时间】:2011-11-04 15:43:28
【问题描述】:

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

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

【问题讨论】:

标签: java javascript classpath package ringojs


【解决方案1】:

我终于弄清楚了如何在 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 实现中实现。

【讨论】:

    猜你喜欢
    • 2017-06-11
    • 2011-01-06
    • 2018-02-12
    • 1970-01-01
    • 2019-06-22
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    相关资源
    最近更新 更多