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

Vivek Dwivedi vivekd at mail630.gsfc.nasa.gov
Mon Jun 26 21:18:35 EDT 2006


OK I stuck all the .dylib's and .jnilib to /Library/Java/Extensions

When I try to run Cone5.java I get this error:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no 
vtkCommonJava in java.library.path
         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
         at java.lang.Runtime.loadLibrary0(Runtime.java:822)
         at java.lang.System.loadLibrary(System.java:992)
         at Cone5.<clinit>(Cone5.java:16)


-Vivek


On Mon, 26 Jun 2006, Mike Jackson wrote:

> Looks right for the otool stuff... now stick those in 
> /Library/Java/Extensions and see if Java can pick up the libs...
>
> --------
> Mike Jackson
> imikejackson <at> gmail <dot> com
>
>
>
> On Jun 26, 2006, at 2:11 PM, Vivek Dwivedi wrote:
>
>> 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