我正在尝试使用Eclipse在Maven项目中作为Java应用程序运行,并且遇到以下运行时错误。错误如下所示。
线程“主”中的异常java.lang.NoClassDefFoundError:com.wang.testMaven.App.main(App.java:16)上的org
/ apache / http /
ConnectionReuseStrategy造成原因:java.lang.ClassNotFoundException:org.apache.http
.ConnectionReuseStrategy(位于java.net.URLClassLoader.findClass(URLClassLoader.java:381)(位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)(位于java.lang.ClassLoader.loadClass(ClassLoader.java:357))
我的代码如下所示
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
HttpClient httpClient = HttpClientBuilder.create().build();
System.out.println( "Hello World!" );
}
}
我的pom.xml如下所示
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.wang</groupId>
<artifactId>testMaven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>testMaven</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.1-alpha1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.2</vershtml" target="_blank">ion>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient-cache</artifactId>
<version>4.5.2</version>
</dependency>
</dependencies>
</project>
任何想法..谢谢
我意识到,有几个依赖项具有相同的groupId和artifactId。
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.1-alpha1</version>
</dependency>
和
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.1</version>
</dependency>
实际上,您应该只有一个具有相同groupId和artifactId的依赖项。
因此,首先我删除了httpcore:4.1-alpha1依赖项并执行了测试类。我有例外
java.lang.NoClassDefFoundError: org/apache/http/config/Lookup
at com.test.so.Test1.test(Test1.java:12)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
然后我使用了httpcore:4.1-alpha1而不是httpcore-4.1,我得到了同样的异常。
因此,当我基于SO链接将httpcore版本更新为4.3.3时,出现了如下异常-
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/ssl/SSLContexts
at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:966)
at com.amitg.so.App.main(App.java:11)
最终将httpcore版本更新到4.4,它运行良好。因此,它应该适用于4.4以上的所有httpcore版本jar。(我测试了4.4.4,它也很好用。)。这里提到可用的版本。请在这里找到工作代码。
问题内容: 我尝试通过Solrj查询Solr 这是我的代码 } 这给了我一个例外 PS。我的个人有以下罐子: * apache-commons-logging, httpclient -4.2, httpcore 4.2.1,slf4j-api 1.6.2, apache-solr-solrj -1.4.0 *** 问题答案: 您需要在类路径上使用commons-codec.jar。
问题内容: 我使用ant脚本构建了一个可执行jar,我使用的唯一外部jar是joda-time 2.0。由于我没有收到任何编译错误,因此该蚂蚁构建脚本“似乎”可以正常工作,如果我要从lib目录中删除jode-time 2.0.jar,则构建确实会按预期失败。无论如何,构建jar之后,当我尝试运行时会出现此错误: java -jar myapp.jar 线程“主”中的异常java.lang.NoCl
包com.copiedcrawler;
问题内容: 我正在尝试执行以下代码: 但这给了我这个错误: 我已将SLF4J添加到引用的库中,但不知道为什么这不起作用。 在WIN 7上运行,在Eclipse和NetBeans中尝试过 任何想法? 问题答案: 下载SLF4J并将slf4j-api-1.7.2.jar文件放到您的类路径中。
问题内容: 我有一个惊人的siplme Java应用程序,几乎可以从这个示例中复制它:http ://markmail.org/download.xqy?id=zua6upabiylzeetp&number=2 我要做的就是读取表数据并在Eclipse控制台中显示。 我的pom.xml: 而我的Java代码: 这是我的错误: 16/10/05 20:49:18信息CassandraConnecto
问题内容: 每当我运行此命令时,该函数就可以正常使用。当我选择洞穴时,消息会每隔2秒弹出一次,然后当它越过该部分时,就会出现错误: 我已经尝试过和,并且在该方法中使用时,出现了很多错误。当我在方法中使用时,它不接受我的输入。 当我在该方法中使用时,它不接受我的字符串输入,而直接进入另一个游戏,但是布尔值返回并且它无限地发送垃圾邮件“ Which Cave …”。 我已经阅读了错误报告,以及类似问题