2

Java プロジェクトのマップに Trove-1.0.2 jar を使用したいと考えています。私はEclipse IDEを使用しています。ビルド パスの [外部 jar の追加] を使用して Trove jar を追加しましたが、それでも ClassNotFoundException が発生します。

しかし、チェックしたところ、クラス gnu.trove.THashMap がライブラリに存在します。

Error: java.lang.ClassNotFoundException: gnu.trove.THashMap
        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
        at com.a.VCLReduce0.reduce(VCLReduce0.java:38)
        at com.a.VCLReduce0.reduce(VCLReduce0.java:1)
        at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:519)
        at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:420)
        at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:416)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
        at org.apache.hadoop.mapred.Child.main(Child.java:249)
4

2 に答える 2

0

Hadoopでジョブを実行するには、依存関係がjarに解凍されているか、マニフェストで指定されているスタンドアロンのjarファイルが必要です。

EclipseからHadoopジョブを実行するためのヒントについては、この質問を参照してください。Eclipseからmapreduceジョブを起動します。

彼らはこの記事にも言及しています、それは日食の設定についていくつかの良い情報を持っているようです:http: //www.mapr.com/blog/basic-notes-on-configuring-eclipse-as-a-hadoop-development-environment- for-mapr

于 2013-03-06T17:22:04.117 に答える
0

Eclipse でランタイム クラスパスを確認します (ただし、ライブラリはデフォルトで存在するはずです)。Runメニューを使用してEclipseで実行していると思います。

  1. メイン クラスを右クリックします。
  2. 「Run As -> Run Configurations ...」を選択します
  3. ダイアログの左側にある Java アプリケーションを展開します。メイン クラスがリストされている場合はそれを選択し、そうでない場合は [New Launch Config] オプションをクリックし、[メイン クラス] フィールドにメイン クラス名が表示されていることを確認します。
  4. ClassPath タブをクリックし、Trove.jar ファイルがリストされているかどうかを確認します。そうでない場合は、追加してアプリを実行します。

クラスパス上にある場合、Trove-1.0.2 jar 自体にビルド パスに追加されていない依存関係がある可能性がありますが、Maven Central で確認したところ、そうではないようです。

于 2013-03-06T17:00:23.180 に答える