代码之家  ›  专栏  ›  技术社区  ›  vrutberg

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

  •  1
  • vrutberg  · 技术社区  · 14 年前

    我正在使用MozillaRhino编写一个JavaScript服务器应用程序。我希望在我的项目中包含httpclient类,以便轻松访问Web,但我不知道如何配置Eclipse项目,以使Rhino加载httpclient JAR文件。

    我补充说 js.jar (来自犀牛)和 httpclient-4.0.1.jar 对于Eclipse中的项目构建路径,以及在我的运行配置中,我已经从Rhino的js.jar(它找到)中指定了主类,在我的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 回复  |  直到 14 年前
        1
  •  3
  •   x4u    14 年前

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

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

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

        2
  •  1
  •   vrutberg    14 年前

    好吧,问题似乎是我有多个 httpclient-4.0.1.jar 文件,包括在类路径和项目的构建路径中。除此之外,我似乎遗漏了一些依赖 httpclient-4.0.1.jar版本 取决于。在清理了我的类路径并将所有必要的jar添加到我的项目中之后,现在看起来一切都如预期的那样。

    谢谢你们的帮助!

        3
  •  0
  •   Matthew Crumley    14 年前

    你确定吗 httpclient-4.0.1.jar 运行程序时是否在类路径中?