[vtkusers] VTK 5.0 with Java Wrappings On OS X will not work

Vivek Dwivedi vivekd at mail630.gsfc.nasa.gov
Mon Jun 26 14:11:49 EDT 2006


OK I rebuild vtk and made sure that skip R path was set to on.

My .dylib and .jnilib files are located in /Users/vivekd/VTK/bin

when doing a otool -L for libvtkCommonJava.dylib I get the following:

libvtkCommonJava.dylib:
         libvtkCommonJava.dylib.5.0 (compatibility version 0.0.0,  
current version 0.0.0)
         libvtkCommon.dylib.5.0 (compatibility version 0.0.0, current  
version 0.0.0)
         libvtksys.dylib.5.0 (compatibility version 0.0.0, current  
version 0.0.0)
         /System/Library/Frameworks/AppKit.framework/Versions/C/ 
AppKit (compatibility version 45.0.0, current version 824.38.0)
         /usr/lib/libSystem.B.dylib (compatibility version 1.0.0,  
current version 88.1.5)
         /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0,  
current version 7.4.0)
         /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0,  
current version 1.0.0)



for libvtkCommonJava.jjnilib

libvtkCommonJava.jnilib:
         libvtkCommonJava.dylib.5.0 (compatibility version 0.0.0,  
current version 0.0.0)
         libvtkCommon.dylib.5.0 (compatibility version 0.0.0, current  
version 0.0.0)
         libvtksys.dylib.5.0 (compatibility version 0.0.0, current  
version 0.0.0)
         /System/Library/Frameworks/AppKit.framework/Versions/C/ 
AppKit (compatibility version 45.0.0, current version 824.38.0)
         /usr/lib/libSystem.B.dylib (compatibility version 1.0.0,  
current version 88.1.5)
         /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0,  
current version 7.4.0)
         /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0,  
current version 1.0.0)


I don't know if this is correct or not...


-Vivek





On Jun 26, 2006, at 10:51 AM, Mike Jackson wrote:

> 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