JavaScript可以使用jar文件中的类(非Internet使用)

时间:2014-07-04 19:07:00

标签: javascript jar scriptengine

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

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

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

更新:

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

1 个答案:

答案 0 :(得分:5)

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

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

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

    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

有帮助