13

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)」が正しく機能します。

提案をありがとう。

4

2 に答える 2