81

Ubuntu 12.04 では、sun/oracle の jdk7 がインストールされています。の場合locate jni.h、複数の場所を印刷します

/usr/lib/jvm/java-6-openjdk-amd64/include/jni.h
/usr/lib/jvm/jdk1.7.0_07/include/jni.h
...

JDKによって生成されたヘッダーファイルには、がありinclude <jni.h>、現在それは文句を言います

fatal error: jni.h: No such file or directory.

私のMakefileでは、場所の指定はありませんjni.h。そして、コンパイル時にjni.h(たとえば)のパスを認識できるように、特定のシステムパラメーターを構成することが可能かどうかを尋ねています。/usr/lib/jvm/jdk1.7.0_07/include/jni.h

4

11 に答える 11

48

You have to tell your compiler where is the include directory. Something like this:

gcc -I/usr/lib/jvm/jdk1.7.0_07/include

But it depends on your makefile.

于 2013-01-25T20:25:16.910 に答える
17

OpenJDK Development Kit (JDK) をインストールすると、問題が解決するはずです。

sudo apt-get install openjdk-X-jdk

これで問題なくコンパイルできるはずです。

于 2015-02-13T08:33:27.660 に答える
8

次のコードを使用します。

make -I/usr/lib/jvm/jdk*/include

ここで、jdk* は jdk インストールのディレクトリ名です (例: jdk1.7.0)。

また、ダウンロードおよびインストールされるJDKのビルドが異なるとディレクトリ名が異なるため、システム全体のソリューションはありません。自動化されたソリューションが必要な場合は、すべてのコマンドを 1 つのスクリプトに含めて、そのスクリプトをターミナルで実行してください。

于 2013-10-27T12:53:01.820 に答える