Java/Jython - 如何将未找到的 类 关联到特定的 jar 文件
Java/Jython - how to relate unfound classes to specific jar files
这也让我在试验 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。正确。
接下来 "class not found" 是 ConnectionReuseStrategy:我调查然后包含 httpcore-4.4.1.jar。正确。
在这之后我得到 "class not found" for org.apache.commons.logging.LogFactory。猜测,我包括 commons-logging-1.2.jar。正确。
之后我得到
'javapackage' object has no attribute 'HttpPost'
这条 Jython 消息意味着我猜错了 HttpPost 的包 "javax.json"。
所以我 google "HttpPost" 发现它是 org.apache.http.client.methods 的成员。这并没有告诉我接下来要包含哪个 jar 文件...我必须猜测!
我的问题是:假设您可以找到 class 来自的(可能)包,您能否找到该包与实际 jar 文件的关系?正如我所说,这对我来说是 Lucene 的一个大难题,现在是所有这些 Apache HTTP 的东西。
www.findjar.com (or http://findjar.com 正如某些人所说)!
以后
然而,不系统:它似乎不涉及自动化系统。您必须提交 "likely candidate" 个罐子。我提交了 elasticsearch jar。但 Lucene 似乎也不见了。已经开始阅读有关 Maven 的内容。叹息
这也让我在试验 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。正确。
接下来 "class not found" 是 ConnectionReuseStrategy:我调查然后包含 httpcore-4.4.1.jar。正确。
在这之后我得到 "class not found" for org.apache.commons.logging.LogFactory。猜测,我包括 commons-logging-1.2.jar。正确。
之后我得到
'javapackage' object has no attribute 'HttpPost'
这条 Jython 消息意味着我猜错了 HttpPost 的包 "javax.json"。
所以我 google "HttpPost" 发现它是 org.apache.http.client.methods 的成员。这并没有告诉我接下来要包含哪个 jar 文件...我必须猜测!
我的问题是:假设您可以找到 class 来自的(可能)包,您能否找到该包与实际 jar 文件的关系?正如我所说,这对我来说是 Lucene 的一个大难题,现在是所有这些 Apache HTTP 的东西。
www.findjar.com (or http://findjar.com 正如某些人所说)!
以后 然而,不系统:它似乎不涉及自动化系统。您必须提交 "likely candidate" 个罐子。我提交了 elasticsearch jar。但 Lucene 似乎也不见了。已经开始阅读有关 Maven 的内容。叹息