Ubuntu 12.04 amd64 で cmake 2.8.7 を使用しています。私のシステムにインストールされている OpenJDK JRE コンポーネントは以下のとおりです。
$ sudo dpkg --list | grep jdk
openjdk-6-jre 6b27-1.12.5-0ubuntu0.12.04.1 OpenJDK Java runtime, using Hotspot JIT
openjdk-6-jre-headless 6b27-1.12.5-0ubuntu0.12.04.1 OpenJDK Java runtime, using Hotspot JIT (headless)
openjdk-6-jre-lib 6b27-1.12.5-0ubuntu0.12.04.1 OpenJDK Java runtime (architecture independent libraries)
ただし、OpenJDK JRE コンポーネントは使用していません。Oracle Java 7 JDK を「/usr/lib/jvm/jdk1.7.0_25」に手動でインストールし、「update-alternatives」を使用して「java」をインストール済みの Oracle Java 7 JDK にポイントしました。「JAVA_HOME」、「JAVA_BIN」、「CLASSPATH」環境変数を設定していません。手動でインストールした Oracle Java 7 JDK は Eclipse 4.3 で正常に動作するようです。
問題は、cmake で「find_package(JNI)」を使用し、「message()」関数を使用して JNI 変数を表示すると、次の結果が得られることです。
Could NOT find JNI (missing: JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH)
JNI_FOUND = FALSE
JNI_LIBRARIES = /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libjawt.so;/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/libjvm.so
JAVA_INCLUDE_PATH = JAVA_INCLUDE_PATH-NOTFOUND
JAVA_INCLUDE_PATH2 = JAVA_INCLUDE_PATH2-NOTFOUND
JAVA_AWT_INCLUDE_PATH = JAVA_AWT_INCLUDE_PATH-NOTFOUND
JAVA_JVM_LIBRARY = /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/libjvm.so
JAVA_AWT_LIBRARY = /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libjawt.so
JNI_INCLUDE_DIRS = JAVA_INCLUDE_PATH-NOTFOUND;JAVA_INCLUDE_PATH2-NOTFOUND;JAVA_AWT_INCLUDE_PATH-NOTFOUND
「find_package(JNI)」は、OpenJDK JRE に関連する Java コンポーネントの一部を見つけることができたようですが、「update-alternatives」が指す現在の Oracle Java 7 JDK コンポーネントを見つけることができませんでした。
「FindJNI.cmake」ファイルにバグがあるか、Oracle Java 7 JDK セットアップで見逃したものがないかを知りたいので、cmake「find_package(JNI)」が正しく機能します。
提案をありがとう。