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

Vivek Dwivedi vivekd at mail630.gsfc.nasa.gov
Thu Jun 29 14:41:58 EDT 2006


Mike,

I created the java program and found out where my java.library.path is:

LIBPATH  : .:/Library/Java/Extensions:/System/Library/Java/ 
Extensions:/usr/lib/java


I put the .dylib and .jnilib files in there

I reran the programs and nothing I still get the same errors:

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 Cone.main(Cone.java:33)


Any other thoughts?

Thanks:

-Vivek


On Jun 26, 2006, at 10:19 PM, Mike Jackson wrote:

> You should be able to the the system property "java.library.path"  
> from with in your java program and then print it out. This might  
> help figure out where the JVM is trying to look for the libs.
>
> I used to have the code to do this handy.. but I can not find it  
> any more. It is something like System.getProperty 
> ("java.library.path"); or something like that.
>
>
> --------
> Mike Jackson
> imikejackson <at> gmail <dot> com
>
>
>
> On Jun 26, 2006, at 9:18 PM, Vivek Dwivedi wrote:
>
>> 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