gpt4 book ai didi

java - 如何找出缺少哪个 Java 类定义/要导入哪些依赖项?

转载 作者:行者123 更新时间:2023-11-30 01:41:29 27 4
gpt4 key购买 nike

虽然我了解 OOP,但我对 Java 实现外部库的方式非常陌生。我目前只是想搞乱对 IEX 交易 API 的 HTTP 请求,如此处的 Java 选项所示 https://rapidapi.com/eec19846/api/investors-exchange-iex-trading 。首先,我尝试在 IntelliJ 中准确运行该代码:

package com.company;

import com.mashape.unirest.http.Unirest;
import com.mashape.unirest.http.exceptions.UnirestException;
import com.mashape.unirest.http.HttpResponse; //

public class Main {
public static void main(String[] args) {
try {
HttpResponse<String> response = Unirest.get("https://investors-exchange-iex-trading.p.rapidapi.com/stock/msft/effective-spread")
.header("x-rapidapi-host", "investors-exchange-iex-trading.p.rapidapi.com")
.header("x-rapidapi-key", "(my_key_here)")
.asString();
System.out.println(response);
} catch (UnirestException e) {
System.err.println(e);
}
}
}

我已经收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/HttpRequest
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at com.mashape.unirest.request.BaseRequest.asString(BaseRequest.java:56)
at com.company.Main.main(Main.java:16)
Caused by: java.lang.ClassNotFoundException: org.apache.http.HttpRequest
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 38 more

我在项目的类路径中包含了所有必要的依赖项(org.json、httpclient_4.3.6、httpmime_4.3.6、httpasyncclient_4.0.2),我真的不确定如何解释此错误。错误消息中对 Main.java:16 的引用是带有“.asString()”的行。

有人知道这是怎么回事吗?在这种情况下如何找到丢失的 classdef?

最佳答案

失败是由于对 org.apache.http.HttpRequest 的运行时依赖造成的。

每当出现类未找到异常时,我都会首先查找该类存在于哪个库中。 org.apache.http.HttpRequest 类位于 httpcore library 中.

如果您使用 Maven,您可以查看 POM 依赖关系图来查看 httpcore 是否存在,如果存在,则使用依赖项运行构建应该会选择该库。

关于java - 如何找出缺少哪个 Java 类定义/要导入哪些依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59815487/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com