2011-12-20 27 views
3

scribe & hdfsのインストールに苦労します。感謝する価値がある、私は問題のほとんどを解決した。しかし、私はここで立ち往生しています。JNIプログラムを実行すると "java/lang/NoClassDefFoundError:java/lang/Object"

私はlibhdfsをインストールし、私は、 "Hello World" のテスト書き込み:私はCLASSPATH

を設定している誓う

Error occurred during initialization of VM 
java/lang/NoClassDefFoundError: java/lang/Object

:私はそれを実行したときに

#include <iostream> 
#include <string> 
using namespace std; 
#include "hdfs.h" 

int main(int argc,char *argv[]){ 
    string host = "10.210.74.143"; 
    int port = 9000; 
    hdfsFS fs = hdfsConnect(host.c_str(),port); 
    return 0; 
} 

それはこのMSGを印刷します

+0

通常、Java/lang/Objectが見つからない場合は、Java Runtime Environment(別名JVM)が見つかりません。 –

答えて

0

まず、Javaプログラムの動的ライブラリを使用する代わりに、Cプログラムを実行しています。それは本当にあなたがやろうとしていたものですか?

もしそうなら、おそらくJVM(興味深い)を明示的に作成する必要があります: http://www.inonit.com/cygwin/jni/invocationApi/c.htmlを参照してください.hdfsConnect関数がそれをしない限り

+0

hdfsConnectは私のためにJVMを作成します。私は問題を解決し、libhdfsはCLASSPATHではなく特定のパスでjarファイルを取得しますが、その理由はわかりません。 – renenglish

+0

あなたがhttp://www.inonit.com/cygwin/jni/invocationApi/c.htmlで与えたコードをコピーしました それをコンパイルしてください: gcc -o hello hello.c -I/usr/java/jdk1。 6.0_25 /含める/ -Iは/ usr/javaの/ jdk1.6.0_25// Linuxが含ま-L /usr/java/jdk1.6.0_25/jre/lib/amd64/server/ -ljvm が、ときに私が実行します./こんにちは、それは印刷します エラーは、VMの初期化中に発生した ネイティブライブラリをロードできません:/usr/libjava.so:共有オブジェクトファイルを開くことができません:そのようなファイルやディレクトリ – renenglish

+0

@renenglishをので、彼らは、特定のパスにjarファイルを探してください、ね?バマー。 libjava.soが見つからない場合は、JAVA_HOMEが正しく設定されていない可能性があります。ウィンドウでは、ライブラリ(java.dll)はJAVA_HOME \ binにあります。 –

関連する問題