如何使用Rhino和Eclipse从JavaScript访问外部JAR文件?

时间:2010-01-15 23:37:49

标签: java javascript eclipse classpath rhino

我正在使用Mozilla Rhino编写JavaScript服务器应用程序。我想在我的项目中包含HttpClient类来轻松访问Web,但我无法弄清楚如何配置我的Eclipse项目以使Rhino加载HttpClient JAR文件。

我已将js.jar(来自Rhino)和httpclient-4.0.1.jar添加到Eclipse中我项目的构建路径中,在我的运行配置中,我已经从Rhino的js.jar中指定了Main类(它找到了) ,在我的JavaScript文件中,我基本上这样做:

importPackage(org.apache.http.client.methods);
var get = new HttpGet("<some url returning json data>");
get.execute();
print(get.getResponseBodyAsString());

它没有说出这个:

Exception in thread "Thread-0" org.mozilla.javascript.EcmaError: ReferenceError: "HttpGet" is not defined.

这怎么这么难?我必须做一些根本错误的事情。

3 个答案:

答案 0 :(得分:3)

如果您的类路径设置正确,我不明白为什么您的代码不起作用。我建议尝试显式加载该类以查看它是否真的可用,否则您似乎没有在类路径中使用它:

println( java.lang.Class.forName( 'org.apache.http.client.methods.HTTPGet' ) );

Rhino应该能够从外部jar文件加载到类而不会出现问题或额外的工作。

答案 1 :(得分:1)

好的,问题似乎是我在我的类路径和项目的构建路径中有多个httpclient-4.0.1.jar文件的引用。除此之外,我似乎遗漏了httpclient-4.0.1.jar依赖的几个依赖项。清理完我的类路径并将所有必要的jar添加到我的项目后,它现在似乎找到了预期的一切。

感谢您的帮助!

答案 2 :(得分:0)

运行程序时,您确定httpclient-4.0.1.jar在类路径中吗?