[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  

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_INSTALL_PREFIX                                /usr/local
> CMAKE_OSX_ARCHITECTURES                    ppc
> CMAKE_OSX_SYSROOT                                   /Developer/SDKs/ 
> MacOSX10.4u.sdk
> VTK_DATA_ROOT                                                
> 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