Build OpenCV JDK 6 32 bit for Mac

匆匆过客 提交于 2020-01-06 02:19:08

问题


This problem has set me back 2 straight days and I am getting very desperate at this point. As the question description states I need the OpenCV 2.4.11 java library 32 bit version that will run with JDK 1.6 on a Mac running Yosemite.

I require this because another library that I am using requires 32 bit (and this is only available with JDK 1.6). Hence I am using JDK 1.6 and passing the VM argument -d32.

I have had two main attempts:

For both attempts I first set my default JDK to 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

(It is to be noted that both methods below have no problems building the library with JDK 1.7 and 64bit.)

Method 1: I try and build the OpenCV library with CMake:

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 ..

(I found this method from this thread)

The journey of this attempt ends here because there is a problem with linking the Java components:

-- Could NOT find JNI (missing:  JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH) 

and

--   Java:
--     ant:                         /usr/local/bin/ant (ver 1.9.6)
--     JNI:                         NO
--     Java tests:                  NO

The complete output can be found here.

It turns out that this is some issue with CMake and I tried the suggestions from this thread. Modifying FindJNI.cmake did not solve the problem.

Method 2 I try and build the OpenCV library with HomeBrew:

brew tap homebrew/science
brew install opencv --with-java --universal

The build goes fine. Once I locate the .jar and .dylib and create the OpenCV library in Eclipse and run the project I get the following error:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/opencv/core/Point : Unsupported major.minor version 51.0

Which means that it did not build with JDK 1.6.

Other thoughts/Attempts:

  • Try the methods on other computers. I had to stop because I ran into trouble setting up cmake and homebrew because the computers where not set up as "developer" computers i.e They did not have Git, XCode etc.
  • Using JDK 1.5. Turns out JDK is not supported on Yosemite but I found this thread how I could try get it up and running.
  • Try using an earlier version of OpenCV. I tried version 2.4.10 but ran into the same issues.

回答1:


What you can do is have two program running. One 32-bit and one 64-bit. Each talks to the other via TCP e.g. SOcket, RMI, Messaging.

This way you can use a 32-bit and a 64-bit library at the same time.



来源:https://stackoverflow.com/questions/34103709/build-opencv-jdk-6-32-bit-for-mac

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!