2

我在 jar 文件中有一个 API,但是如何在 JavaScript 中使用 jar 中的类?当我尝试导入它们时,

    conf = Packages.abcapi.Config;
    var cfg = new conf.Config();

它不起作用。这不会在浏览器或互联网上使用。

更新:

我正在使用 Java ScriptEngine 将我们的 API 扩展到所有 JSR-223 脚本语言。在 Java 应用程序中,我读取了一个 JavaScript 文件,然后使用 ScriptEngine 执行该文件。我需要 JavaScript 文件使用来自 jar 文件的 API 中的类。我尝试在运行 ScriptEngine 时在类路径中设置 jar,但它仍然找不到使用上述代码的类。不过,这在 Jython 中运行良好,因为在 Jython 中在类路径中设置 jar 后使用 jar 文件中的类没有问题。

4

1 回答 1

5

我正在阅读 JavaScript 文件,然后使用 Java ScriptEngine 执行它们。当您运行将像这样执行 JavaScript 的 Java 代码时,将 jar 添加到您的类路径中,

    java -cp ./;C:\Location\Of\The\Jar\File\abc.jar MainClass

然后在 JavaScript 中,您可以从该 jar 中获取包并将包设置为变量。然后,当您想使用该包中的 Class 时,只需在类名前面加上变量,然后加上 . 像这样,

    myvariable = Packages.abc.foo.pack.name;

    var foo = new myvariable.ClassFromTheJarFile("arg1","arg2");

    foo.doSomething();

    var fooSister = new myvariable.AnotherCLassFromTheJarFile("arg1");

    fooSister.doSomthingFromThisClass();

我做错的是尝试像这样直接从包中导入类,

    myvariable = Packages.abc.foo.pack.name.ClassFromTheJarFile;

所以只导入包而不是类。为了澄清您不需要使用 Java *.

这不是在浏览器或互联网上使用。这是另一个使用来自 URL 位置的 jar 的链接,它可能对某人有所帮助http://mozilla-firefox-extension-dev.blogspot.com/2004/11/calling-java-code-in-custom-jars -from.html

于 2014-07-05T20:03:30.060 回答