java.lang.ClassNotFoundException:org.apache.commons.lang3.builder.EqualsBuilderによって引き起こされます

Suvojit_007:

これまでのところ私はダウンロードしてApache Commons library、ライブラリを抽出
commons-lang3-3.8.1.jarしてJava\jdk1.8.0_172\jre\lib\ext

今私は2つのフィールドを持つクラスを作成していると私はob1.equals(OB2)を使用して、2つのオブジェクトを比較したいです。この方法equalsとはhashCodeオーバーライドされていて、私は取得していますエラーがある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

私は長い間、この問題に直面してきました。私はすべてのクラスファイルをチェックしていると私は、ライブラリが正しくロードされていることをかなり確信しているが、私は取得していますなぜ私にはわかりませんNoClassDefFoundErrorruntime

Suvojit_007:

この問題に時間を過ごした後、私は最終的に設定することで、それを固定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\libdirectory.Theのmyapp.javaファイルが置かれているcoding @Octoberディレクトリ。

ここでは、画像の説明を入力します。

クラスパスを設定した後、私はその後、コンパイルして実行することができますmyapp.java経由でjavac myapp.java直接、その後、コマンドjava myappスクリプトを実行します。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=218266&siteId=1