2

プロジェクトで apache http ライブラリを使用しようとしています。プロジェクトにライブラリをインポートしましたhttp://imgur.com/WvwqcDS

プログラムを実行すると、次のエラーが発生します。

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/HttpEntity
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
        at java.lang.Class.getMethod0(Unknown Source)
        at java.lang.Class.getMethod(Unknown Source)
        at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.http.HttpEntity
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 6 more
4

3 に答える 3

5

ClassLoader は、「httpcore-4.3.jar」内にあるはずの org.apache.http.HttpEntity を見つけることができません。jar をアーカイブとして開き、org/apache/http/HttpEntity.class が含まれていることを確認します。その場合、問題は起動構成にあります。Eclipse で、Run > Run Configurations... に移動し、メイン クラスの Java アプリケーション プロファイルを見つけます (これは、スクリーンショットに基づいて、「Launcher」プロジェクトのメイン メソッドを含むクラスである必要があります)。[クラスパス] タブの下に、ライブラリ jar が一覧表示されているはずです。

そうでない場合は、ナビゲーション ペインの「ランチャー」プロジェクトに戻り、右クリックして [プロパティ] を選択し、[ビルド パス] に移動して、jar を削除し、[OK] を押してから、戻って再度追加します (日食を保証するため)。メタデータは新鮮です)。また、[注文とエクスポート] タブで、すべての jar をチェックして、Launcher を別のプロジェクトの依存関係として含める場合に、jar が推移的に含まれるようにすることをお勧めします。

于 2013-10-19T21:52:59.917 に答える
1

Eclipse で外部 jar を見つけるのに問題があります。それらをワークスペースにインポートするか、「外部 jar の追加」を使用して外部で参照してみてください。

于 2013-10-19T18:46:38.547 に答える
0

私の場合、Maven は依存関係を適切に更新していませんでした。私は mvn clean を使用し、依存関係を再更新してから修正しました。

于 2017-07-11T06:26:29.417 に答える