为Mac构建OpenCV JDK 6 32位

时间:2015-12-05 10:20:54

标签: java macos opencv cmake homebrew

这个问题让我连续两天回来,我现在非常绝望。正如问题描述所述,我需要在运行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构建。

其他想法/尝试:

  • 尝试其他计算机上的方法。因为我,我不得不停下来 设置cmake和自制软件因为计算机而遇到了麻烦 哪里没有设置为“开发者”计算机,即他们没有Git, XCode等。
  • 使用JDK 1.5。事实证明Yosemite不支持JDK,但我找到了 this thread我如何尝试启动并运行。
  • 尝试使用早期版本的OpenCV。我尝试了2.4.10版但是 遇到了同样的问题。

1 个答案:

答案 0 :(得分:0)

你可以做的是运行两个程序。一个32位和一个64位。每个通过TCP与另一个进行通信,例如SOcket,RMI,Messaging。

这样,您可以同时使用32位和64位库。