Java/Jython - 如何将未找到的类与特定的 jar 文件关联起来

标签 java class jython package

在尝试 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 的“找不到类”。
一些谷歌搜索引导我到 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 的“找不到类”。猜测,我包含了 commons-logging-1.2.jar。正确。

在此之后我得到

'javapackage' object has no attribute 'HttpPost'

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

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

最佳答案

www.findjar.com (或 http://findjar.com 有些人会这样)!

稍后 然而,它并不系统化:它似乎不涉及自动化系统。您必须提交“可能的候选” jar 。我提交了elasticsearch jar。但 Lucene 似乎也缺失了。已开始阅读有关 Maven 的内容。叹息。

关于Java/Jython - 如何将未找到的类与特定的 jar 文件关联起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30415765/

相关文章:

java - linux top 命令的内存和 jconsole 堆的使用有很大不同

java - tomcat 8 security 基于表单的身份验证自动登录

objective-c - 无法识别Objective-C类

java - 为什么我在使用 "from javax.mail import *"时无法解析 jython 中的公共(public) java 对象?

encoding - Jython 的 Java 和 Python 级别的不同编码

Java8 String ReplaceAll 改变了行为

Java 记录验证注解

python - 用类创建对象,为什么需要__init__(self, args) :?

javascript - 如何将一个类实例插入另一个类的私有(private)数组中?

java - Jython,如何获取脚本所在 jar 的基本路径?