[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