gpt4 book ai didi

java - 由 : java. lang.ClassNotFoundException : org. apache.commons.lang3.builder.EqualsBuilder 引起

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:46:35 27 4
gpt4 key购买 nike

到目前为止,我已经下载了 Apache Commons library ,提取了库
commons-lang3-3.8.1.jarJava\jdk1.8.0_172\jre\lib\ext 中。

现在我创建了一个包含两个字段的类,我想比较两个对象使用ob1.等于(ob2)。方法 equalshashCode 已被覆盖,我得到的错误是 Exception in thread "main"java.lang.NoClassDefFoundError: org/apache/commons/lang3/builder/EqualsBuilder运行时

import java.util.*;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.EqualsBuilder;

class key{

int end;
LinkedList<Integer> via = new LinkedList<>();
key(int x,LinkedList<Integer> ob){
this.end = x;
this.via = ob;
}

@Override
public int hashCode(){

return new HashCodeBuilder().append(end).append(via).toHashCode();

}

@Override
public boolean equals(Object obj)
{
if(!(obj instanceof key))
return false;
if(this==obj)
return true;
key o=(key)obj;
return new EqualsBuilder().append(end,o.end).append(via,o.via).isEquals();
}


}

class main{

public static void main(String[] args)
{

key ob1 = new key(12,new LinkedList<Integer>(Arrays.asList(1,2,3)));
key ob2 = new key(12,new LinkedList<Integer>(Arrays.asList(1,2,3)));

System.out.println(ob1.equals(ob2)); //expecting true
}



}

错误的详细信息如下。

Exception in thread "main" java.lang.NoClassDefFoundError: 

org/apache/commons/lang3/builder/EqualsBuilder
at key.equals(test.java:29)
at main.main(test.java:43)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.builder.EqualsBuilder
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more

这个问题困扰我好久了。我已经检查了所有的类文件,我很确定库已正确加载,但我不知道为什么我在 运行时 得到 NoClassDefFoundError

最佳答案

在这个问题上花了几个小时后,我终于通过设置 CLASSPATH 变量修复了它。我尝试使用 -cp 命令,但不幸的是这对我不起作用。如果我们明确地这样做,那么您不需要向 java 编译器和 java 解释器提供“-cp”或“-classpath”开关值,因为它们已经知道更新后的类路径。

在我的 Windows 机器上,我通过以下设置了 CLASSPATH 变量:

set CLASSPATH=/coding @October\lib\commons-lang3-3.8.1.jar;.

目前,我在 coding @October 目录中。 commons-lang3-3.8.1.jar文件位于 coding@October\lib目录下。myapp.java文件位于在 coding @October 目录中。

enter image description here

设置类路径后,我可以通过以下方式编译并执行myapp.java直接使用javac myapp.java 命令,然后使用java myapp 执行脚本。

关于java - 由 : java. lang.ClassNotFoundException : org. apache.commons.lang3.builder.EqualsBuilder 引起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52669130/

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