私は このチュートリアル に従っており、ステップ5でGCCから次の出力を取得しています。
HelloWorld.c:1:17: error: jni.h: No such file or directory
In file included from HelloWorld.c:3:
HelloWorld.h:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
HelloWorld.c:5: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
彼のインクルードディレクトリはシステムによって異なることを知っているので、それに応じてコマンドを調整しようとしましたが、システム上に正しいディレクトリが見つからないようです。 Ubuntu 10.04LTSを使用しています。
端末を開いて次のように入力します。
locate jni.h
これにより、jni.hというすべてのファイルがシステム上のどこにあるかがわかります。私はubuntu 11.04を使っていて、次の場所にあります:
/usr/lib/jvm/Java-6-openjdk/include/jni.h
/usr/lib/jvm/Java-6-Sun-1.6.0.26/include/jni.h
リポジトリから取得する必要がある場合もあります。
Sudo apt-get install openjdk-6-jdk
あなたはそれをインストールしていない場合はトリックを行う必要があります。
jni.h
はJDKに同梱されています。私にとっては:jdk1.6.0_25/include/
。
また、デフォルトでは、Ubuntuに開発ライブラリを備えたJDKがあるとは思わないため、Oracleから 最新のJDKバージョン をダウンロードして、どこかにインストールします。
または、openjdk
を10.04 LTSで動作する場合は@Leifが推奨するようにインストールできます。個人的には、Sun/Oracleの方が好きです。
Ubuntu 14.04で実行:
Sudo apt-get install openjdk-7-jdk openjdk-7-jre-lib
これで、ヘッダーが/ usr/lib/jvm/Java-7-openjdk-AMD64/includeにあります
OpenJDK 6の場合:
Sudo apt-get install openjdk-6-jdk openjdk-6-jre-lib