[vtkusers] VTK 5.0 with Java Wrappings On OS X will not work
Mike Jackson
imikejackson at gmail.com
Mon Jun 26 10:51:08 EDT 2006
There are a few things that come to mind in all of this. Dynamic Libs
on OS X sometimes have their paths embedded in the library itself so
when you link against them the target library or executable can know
where to find the source libs. This is OK for development when libs
and executables are not moving around, but in some circumstances
there can be problems with this setup, especially if you need to move
the final libs to another directory, like /Library/Java/Extensions
after compilation. The problem becomes when you move it to that new
locations, the loader is still expecting them in the old location
because that old location is encoded in the actual library itself.
Things that you might want to check are:
ANY library that is built with CMake; Check each one with "otool -
L" and report what comes back. If you the path to your vtk build
directory then you have a few choices:
1: in Cmake, check for "skip R path" - Make sure it is ON. This
will NOT embed the paths in the libraries. Now you can move the libs
to somewhere that java knows about, like /Library/java/Extensions.
2: You can use "install_name_tool" to change the embedded paths.
This requires some up front knowledge of the libs, the initial path
encoded and the final path you want to encode. Read the man page for
this tool and google a bit to find all the caveats.
Try these things and let the list know. Maybe we can figure something
out...
--------
Mike Jackson
imikejackson <at> gmail <dot> com
On Jun 26, 2006, at 10:28 AM, Vivek Dwivedi wrote:
> Hello:
>
> After 3 weeks of frustration I have come to the conclusion that VTK
> 5.0 with Java Wrappings will not work on OS X 10.4.x. I will
> detail my steps below so that hopefully someone will tell me my
> mistakes.
>
> my current hardware configuration:
>
> Dual 2 GHz PowerPC G5 - 2.5 GB DDR SDRAM
> OS - Mac OS X 10.4.6
> Java -
> java version "1.5.0_06"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-112)
> Java HotSpot(TM) Client VM (build 1.5.0_06-64, mixed mode, sharing)
>
> VTK - Downloaded from vtk.org version 5.0.0
> CMAKE- CMake Version 2.4 - patch 2
>
> Downloaded VTK as a .tar.gz and expanded to /Users/vivekd creating
> a VTK folder
> cd to VTK folder typed ccmake ../vtk
>
> Here is the CCMAKE options:
>
> BUILD_EXAMPLES ON
> BUILD_SHARED_LIBS ON
> CMAKE_BACKWARDS_COMPATIBILITY 2.4
> CMAKE_BUILD_TYPE
> CMAKE_INSTALL_PREFIX /usr/local
> CMAKE_OSX_ARCHITECTURES ppc
> CMAKE_OSX_SYSROOT /Developer/SDKs/
> MacOSX10.4u.sdk
> VTK_DATA_ROOT
> VTK_DATA_ROOT-NOTFOUND
> VTK_USE_CARBON OFF
> VTK_USE_COCOA OFF
> VTK_USE_PARALLEL OFF
> VTK_USE_RENDERING ON
> VTK_USE_RPATH OFF
> VTK_USE_X ON
> VTK_WRAP_JAVA ON
> VTK_WRAP_PYTHON OFF
> VTK_WRAP_TCL OFF
>
> I configured
>
> I then toggled to advanced mode and changed the following Paths:
>
> JAVACOMMAND /System/Library/Frameworks/
> JavaVM.framework/Versions/1.5/Commands/java
> JAVA_ARCHIVE /System/Library/Frameworks/
> JavaVM.framework/Versions/1.5/Commands/jar
> JAVA_AWT_INCLUDE_PATH /System/Library/Frameworks/
> JavaVM.framework/Versions/1.5/Headers
> JAVA_AWT_LIBRARY -framework JavaVM -framework
> JavaEmbedding
> JAVA_COMPILE /System/Library/Frameworks/
> JavaVM.framework/Versions/1.5/Commands/javac
> JAVA_INCLUDE_PATH /System/Library/Frameworks/
> JavaVM.framework/Versions/1.5/Headers
> JAVA_INCLUDE_PATH2 /System/Library/Frameworks/
> JavaVM.framework/Versions/1.5/Headers
> JAVA_RUNTIME /System/Library/Frameworks/
> JavaVM.framework/Versions/1.5/Commands/java
>
> OPENGL_INCLUDE_DIR /usr/X11R6/include
> OPENGL_gl_LIBRARY -framework OpenGL
> OPENGL_glu_LIBRARY -framework AGL
>
> Configured again and pressed g
>
> In my prompt I typed Make
>
> and after 45 min. everything compiles fine with no errors.
>
> I changed my DYLD_LIBRARY_PATH to point to the location of
> the .jnilib and .dylib files which are in my bin directory located
> at /Users/vivekd/VTK/bin using the following command
>
> setenv DYLD_LIBRARY_PATH /Users/vivekd/VTK/bin
>
> I then set my CLASSPATH to point to the vtk.jar file with the
> following commands
>
> setenv CLASSPATH .:/Users/vivekd/VTK/bin/vtk.jar
>
> I then CD to /Examples/Tutorial/Step2/Java
>
> I compiled the Cone2.java as follows:
>
> javac Cone2.java
>
> I then try to run Cone2.java as follows:
>
> java Cone2
>
> I get the following error:
>
> Exception in thread "main" java.lang.UnsatisfiedLinkError: VTKInit
> at vtk.vtkConeSource.VTKInit(Native Method)
> at vtk.vtkObject.<init>(vtkObject.java:90)
> at vtk.vtkAlgorithm.<init>(vtkAlgorithm.java:238)
> at vtk.vtkPolyDataAlgorithm.<init>
> (vtkPolyDataAlgorithm.java:58)
> at vtk.vtkConeSource.<init>(vtkConeSource.java:114)
> at Cone2.main(Cone2.java:43)
>
>
> I have build and rebuilt VTK...I have placed the Cone2.java example
> in the bin directory and compiled but I still get the same error......
>
> Has anyone been able to get vtk with java wrappings to work on a
> mac.........
>
> Any help and all help will be greatly appreciated.......
>
>
> Thank you
>
>
> -Vivek
>
>
>
>
> _______________________________________________
> This is the private VTK discussion list.Please keep messages on-
> topic. Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
More information about the vtkusers
mailing list