2009-12-12 4 views
1

Est-ce que quelqu'un a exécuté avec succès n'importe quel code Java en utilisant VTK 5.4.2 sous OS X?Utilisation de VTK 5.4.2 avec Java dans OS X 10.6

J'ai installé VTK 5.4.2 depuis la source, configuré pour Java et les bibliothèques partagées. Le fichier vtk.jar est généré comme prévu et le programme Java se compile correctement. Cependant, lors de l'exécution, dès que les classes wrapper appellent les bibliothèques * .dylib sous-jacentes, il apparaît que seule la première bibliothèque est chargée et ses dépendances ne sont pas trouvées même si elles se trouvent dans le même répertoire que la première bibliothèque chargée.

Lors de l'exécution à l'aide de Netbeans, l'erreur que je reçois est:

Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/lib/java/libvtkFilteringJava.dylib: Library not loaded: libvtkCommonJava.5.4.dylib
Referenced from: /usr/lib/java/libvtkFilteringJava.dylib Reason: image not found at java.lang.ClassLoader$NativeLibrary.load(Native Method)

Toutes les idées?

Carlos Action de grâce

Répondre

1

Si vous ajoutez un System.outprintln pour System.setProperty ("java.library.path"); Inclut-il le répertoire où ibvtkCommonJava.5.4.dylib?

Également vous exécutez un mélange de 32/64 bits sur la machine? ... et si oui est la bibliothèque compilée pour le même que la VM que vous utilisez (bibliothèque VM 64 bits 64 bits ou 32 VM-bit et bibliothèque 32 bits).

Ce parle du chemin de la bibliothèque: http://www.java-tips.org/other-api-tips/jni/simple-example-of-using-the-java-native-interface.html

+0

Depuis que je ne savais pas comment changer le java.library.path (? Définition de la propriété ne fait pas l'affaire, comment peut-on faire), je J'ai imprimé le chemin et copié toutes les bibliothèques partagées VTK dans un répertoire du chemin. Donc je suppose que le runtime peut les trouver. Sur l'autre question, j'ai construit VTK en utilisant cmake, et je ne suis pas familier avec elle - en regardant les options de configuration, je ne vois pas de drapeau "-m64", donc je suppose que c'est 32 bits. Rapports Java: Java Server HotSpot (TM) 64 bits Bit VM (build 14.3-b01-101, mode mixte), donc il est 64 bits, apparemment. Peut-être que je devrais essayer de reconstruire en ajoutant le "-m64" ... – cjcela

+0

-Djava.library.path va certainement fonctionner. – bmargulies

+0

Les propriétés du système sont généralement (toujours?) En lecture seule ... J'ai mis à jour ma réponse. – TofuBeer

Questions connexes