这个问题让我连续两天回来,我现在非常绝望。正如问题描述所述,我需要在运行Yosemite的Mac上运行JDK 1.6的OpenCV 2.4.11 java库32位版本。
我需要这个,因为我使用的另一个库需要32位(and this is only available with JDK 1.6)。因此我使用JDK 1.6并传递VM参数-d32
。
我有两次主要尝试:
对于这两次尝试,我首先将我的默认JDK设置为6:
$nano .bash_profile //Opening the Bash Profile
export JAVA_HOME=$(/usr/libexec/java_home -v 1.6) //Set Java_Home to JDK 1.6
(需要注意的是,以下两种方法在使用JDK 1.7和64位构建库时没有问题。)
方法1: 我尝试使用CMake构建OpenCV库:
I go to the directory where I saved the library
mkdir build //Create a build directory
cd build //Go the build directory
cmake -G "Unix Makefiles" -D CMAKE_OSX_ARCHITECTURES=i386 -D CMAKE_C_FLAGS=-m32 -D CMAKE_CXX_FLAGS=-m32 ..
(我从this线程中找到了这个方法)
此尝试的过程在此结束,因为链接Java组件存在问题:
-- Could NOT find JNI (missing: JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH)
和
-- Java:
-- ant: /usr/local/bin/ant (ver 1.9.6)
-- JNI: NO
-- Java tests: NO
可以找到完整的输出here。
事实证明这是CMake的一些问题,我尝试了this thread的建议。修改FindJNI.cmake
并没有解决问题。
方法2 我尝试使用HomeBrew构建OpenCV库:
brew tap homebrew/science
brew install opencv --with-java --universal
构建顺利。找到.jar
和.dylib
并在Eclipse中创建OpenCV库并运行项目后,我收到以下错误:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/opencv/core/Point : Unsupported major.minor version 51.0
这意味着它没有使用JDK 1.6构建。
其他想法/尝试:
答案 0 :(得分:0)
你可以做的是运行两个程序。一个32位和一个64位。每个通过TCP与另一个进行通信,例如SOcket,RMI,Messaging。
这样,您可以同时使用32位和64位库。