Java / Jython - 如何将不合适的类与特定的jar文件相关联

时间:2015-05-23 17:43:24

标签: java class jython packages

在尝试使用Lucene软件包时,这也让我感到困惑......但现在这是一个例子我正在尝试使用Java进入HTTP / JSON / URL。事实上我使用Jython ......因为这不是一个SSCCE,我把它留在(更简洁的)Jython中。 Java用户应该没有理解。

我从SO获得了一些代码,解释了如何使用Java发送JSON对象:

import javax.json
import org.apache.http.impl.client as httpclient

httpClient = httpclient.HttpClientBuilder.create().build()
try:
    request = javax.json.HttpPost("http://yoururl") # Rubbish: see below
    params = javax.json.StringEntity(json.toString())
    request.addHeader("content-type", "application/json")
    request.setEntity(params)
    httpClient.execute(request)
# handle response here...
except Exception, ex:
    # handle exception here
    print ex
httpClient.close()

当我尝试运行它时,我首先得到HttpClientBuilder的“class not found”。
一些谷歌搜索引导我https://hc.apache.org/downloads.cgi ...所以我看看这个页面并想:它是可能是我需要的“HttpClient”下载...所以我下载并解压缩10个jar文件。我想我需要包含httpclient-4.4.1.jar。正确的。

接下来“找不到类”是ConnectionReuseStrategy:我调查然后包含httpcore-4.4.1.jar。正确的。

在此之后,我得到了org.apache.commons.logging.LogFactory的“class not found”。猜猜,我包括commons-logging-1.2.jar。正确的。

在此之后我得到了

  

'javapackage'对象没有属性'HttpPost'

这个Jython消息意味着我猜错了HttpPost包“javax.json”。
所以我谷歌“HttpPost”,发现它是org.apache.http.client.methods的成员。这并没有告诉我接下来要包含哪个jar文件......我必须猜测!

我的问题是:假设您可以找到类来自的(可能)包,您能找到包与实际jar文件的关系吗?正如我所说,对于Lucene而言,这对我来说是一个很大的困惑,现在有了所有这些Apache HTTP的东西。

1 个答案:

答案 0 :(得分:2)

www.findjar.com(或http://findjar.com就像有些人想的那样)!

<强> 但不是系统性的:它似乎不涉及自动化系统。你必须提交&#34;可能的候选人&#34;罐子。我提交了elasticsearch jar。但Lucene似乎也失踪了。已经开始阅读Maven了解。叹息。