私はUbuntu 12.04 amd64でcmake 2.8.7を使用しています。私のシステムでのインストールのOpenJDK JREのコンポーネントは次のとおりです。Ubuntu 12.04 amd64でcmake find_package(JNI)が動作しない
$ 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"に手動でインストールし、インストールされたOracle Java 7 JDKに "java"を指すために "update-alternatives"を使用しました。私は "JAVA_HOME"、 "JAVA_BIN"、 "CLASSPATH"環境変数を設定しておらず、手動でインストールされたOracle Java 7 JDKはEclipse 4.3で正常に動作するようです。
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:
問題は、私は「find_package(JNI)」cmakeの内とJNI変数を表示するには「メッセージ()」関数を使用するを使用する場合、私は次の結果を持っているということです(JNI)」は、OpenJDK JREに関連するJavaコンポーネントの一部を見つけることができ、現在のOracle Java 7 JDKコンポーネントが "update-alternatives"で指し示されていないことがあります。
「FindJNI.cmake」ファイルにバグがあり、Oracle Java 7 JDKの設定で欠落しているため、cmakeの「find_package(JNI)」が正しく機能することがわかりました。
ありがとうございます。
'FindJNI.cmake'が私の問題を修正しました。ありがとうございます。 –
Er .... CMakeについて何が悲惨ですか? –