我在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文件中的类没有问题。
答案 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
有帮助