0

古いラップトップが故障したため、Java プログラムを新しいコンピューターに転送しましたが、プログラムの実行に問題があります。私はEclipseを使用しています.「メインクラスがありません」というエラーを取り除くために、ターゲットディレクトリをビルドパスに追加しました. 今、私はエラーが発生します

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
    at source.Application.<clinit>(Application.java:447)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
    at java.net.URLClassLoader$1.run(Unknown Source)
...

クラスパスファイルには次の行が含まれています

classpathentry kind="lib" path=".../log4j/log4j-1.2.17/apache-log4j-1.2.17/log4j-1.2.17.jar" sourcepath=".../log4j/log4j-1.2.17/apache-log4j-1.2.17/log4j-1.2.17-sources.jar">

だから、私は次に何をしようとしているのか分かりません。

Java ビルド パス / ライブラリ タブのエントリは次のとおりです。

外部 jar: C:\Users\John\Documents\java\log4j\log4j-1.2.17\apache-log4j-1.2.17\log4j-1.2.17.jar ソース添付ファイル: C:\Users\John\Documents\java \log4j\log4j-1.2.17\apache-log4j-1.2.17\log4j-1.2.17-sources.jar javadoc の場所: C:\Users\John\Documents\java\log4j\log4j-1.2.17\apache- log4j-1.2.17\log4j-1.2.17-javadoc.jar

メインクラスにはクラスメンバーがあります

プライベート静的最終ロガー LOGGER = Logger.getLogger(Application.class);

メイン関数には次の行があります

PropertyConfigurator.configure("log4j.properties"); LOGGER.error(e);

4

2 に答える 2

0

最初に、別のドライブに新しい Eclipse ワークスペースを作成し、Java ソース ファイル ディレクトリを新しいワークスペースと必要なライブラリにコピーしました。新しいワークスペースで実行されるプログラム。

以前のワークスペースは転送された svn リポジトリからチェックアウトされていたので、以前の eclipse ワークスペース ディレクトリに移動して .metadata ディレクトリを削除し、以前のワークスペースで eclipse を再起動しました。Eclipse は .metadata ディレクトリを再構築し、以前のワークスペースを実行できるようにしました。

そのため、エラーは、コンピューター間で svn リポジトリーを転送した後に明らかになった、破損した Eclipse ワークスペースであったようです。

于 2013-10-06T13:44:01.203 に答える