gpt4 book ai didi

java - 无法初始化主类,由 : java. lang.NoClassDefFoundError: com/mashape/unirest/http/exceptions/UnirestException [JAVA] 引起

转载 作者:行者123 更新时间:2023-12-01 17:56:13 39 4
gpt4 key购买 nike

问题

在 Eclipse 中运行 Maven“编译”、“安装”命令来创建可执行 JAR 并继续运行该 JAR 后,出现以下错误

错误:无法初始化主类 org.example.project.StockTracker`
引起原因:java.lang.NoClassDefFoundError:com/mashape/unirest/http/exceptions/UnirestException

我不知道发生了什么。我该如何解决这个问题?以下是一些进一步的细节。我使用主类信息更新了 POM,并将类路径设置为“true”。

主类代码

package org.example.project;

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

public class StockTracker {

public static void main (String[] args) throws UnirestException, InterruptedException {
HttpResponse<String> response = Unirest.get("https://apidojo-yahoo-finance-v1.p.rapidapi.com/market/get-quotes?region=US&lang=en&symbols=TSLA")
.header("x-rapidapi-host", "apidojo-yahoo-finance-v1.p.rapidapi.com")
.header("x-rapidapi-key", "api-key")
.asString();

//System.out.println(response.getBody());
System.out.println("response.getBody()");
}
}

UNIREST异常类代码

package com.mashape.unirest.http.exceptions;

public class UnirestException extends Exception {

private static final long serialVersionUID = -3714840499934575734L;

public UnirestException(Exception e) {
super(e);
}

public UnirestException(String msg) {
super(msg);
}

}

JAR 中的 list 文件

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven 3.6.3
Built-By: Author
Build-Jdk: 13.0.1
Class-Path: unirest-java-1.4.9.jar httpclient-4.5.2.jar httpcore-4.4.4.j
ar commons-logging-1.2.jar commons-codec-1.9.jar httpasyncclient-4.1.1.
jar httpcore-nio-4.4.4.jar httpmime-4.5.2.jar json-20160212.jar
Main-Class: org.example.project.StockTracker

最佳答案

在@IlyaSenko 的帮助下,我设法弄清楚了。我需要将所有 JAR 依赖项包含在实际 JAR 中,而不是简单地在 POM 文件中声明依赖项。我用下面的内容更新了我的 POM 以实现这一目标..

<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>org.example.project.StockTracker</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>

然后使用 Maven“mvn cleancompile assembly:single”执行以下命令,将所有 JAR 捆绑到一个可执行 JAR 中。 JAR 之后就工作了。

关于java - 无法初始化主类,由 : java. lang.NoClassDefFoundError: com/mashape/unirest/http/exceptions/UnirestException [JAVA] 引起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60712131/

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