Tôi đang sử dụng cmake 2.8.7 trên Ubuntu 12.04 amd64. Các thành phần OpenJDK JRE đã cài đặt trong hệ thống của tôi được liệt kê bên dưới:cmake find_package (JNI) không hoạt động trong Ubuntu 12.04 amd64
$ 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)
Tuy nhiên, tôi không sử dụng các thành phần JRE OpenJDK. Tôi đã cài đặt bằng tay Oracle Java 7 JDK trong "/usr/lib/jvm/jdk1.7.0_25" và đã sử dụng "các lựa chọn thay thế cập nhật" để trỏ "java" vào Oracle Java 7 JDK đã cài đặt của tôi. Tôi đã không đặt bất kỳ biến môi trường "JAVA_HOME", "JAVA_BIN", "CLASSPATH" và Oracle Java 7 JDK được cài đặt thủ công có vẻ hoạt động tốt trong Eclipse 4.3.
Vấn đề là khi tôi sử dụng "find_package (JNI)" trong cmake và sử dụng "nhắn()" chức năng để hiển thị các biến JNI, tôi có kết quả sau:
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
Các "find_package (JNI) "dường như có thể tìm thấy một số thành phần Java liên quan đến OpenJDK JRE và không thể tìm thấy các thành phần JDK Oracle Java 7 hiện tại của tôi chỉ bởi" các lựa chọn thay thế cập nhật ".
Tôi muốn biết rằng có bất kỳ lỗi nào trong tệp "FindJNI.cmake" và những gì tôi đã bỏ lỡ trong thiết lập Java Java 7 JDK để cmake "find_package (JNI)" có thể hoạt động bình thường.
Cảm ơn mọi đề xuất.
thay đổi 'FindJNI.cmake' đã khắc phục sự cố với tôi .. cảm ơn. –
Er .... những gì là tai hại về CMake? –