12
votes

Problèmes avec la configuration de Java3D Lib

ive a couru dans certains problèmes de configuration de Java3D pour travailler avec mon environnement IDE ...

J'ai téléchargé J3D-1_5_2-Linux-i586.zip et décompressé J3DCore.jar, J3Dutils.jar, Vecmath.jar, libj3dcore -ogl.so, libj3dcore-ogl-cg.so et les a ajoutés tous comme "bibliothèques référencées" dans mon dossier de projet. Cela se débarrasse de tout avertissement de compilation que je commençais, mais quand je compile et dirigez l'application, je reçois l'exception suivante! P>

import javax.media.j3d.BranchGroup;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.SimpleUniverse;

public class Hello3d {

    public Hello3d(){
        SimpleUniverse universe = new SimpleUniverse();
        BranchGroup group = new BranchGroup();
        group.addChild(new ColorCube(0.3));
        universe.getViewingPlatform().setNominalViewingTransform();
        universe.addBranchGraph(group);
    }

    public static void main(String[] args){
        new Hello3d();
    }
}


0 commentaires

12 Réponses :


8
votes

Java se plaint car il ne peut pas trouver les bibliothèques indigènes (les fichiers * .so) sur votre chemin système fourni avec Java3D. Exactement comment vous réparez cela est à vous. Vous pouvez faire n'importe qui l'une des opérations suivantes:

1) Assurez-vous que votre chemin système inclut les fichiers * .so fournis avec Java3D

2) Configuration de votre variable d'environnement LD_Library_Path: Exporter ld_library_path = $ ld_library_path: / usr / lib / "path-to-java3d-bibliothèques" /

3) Définir le java.Library.Path Lors de l'exécution de Java: java -djava.library.path = $ ld_library_path: / usr / lib / "path-to-java3d-bibliothèques" /

Pour être sûr que vous avez les éléments correctement, ajoutez ce qui suit à votre code Java et Assurez-vous que le chemin rapporté contient les bibliothèques partagées sur elle xxx


1 commentaires

Utilisez plutôt Java 3D 1.6.0. Regarde ma réponse. Il n'est pas nécessaire de traiter manuellement des bibliothèques indigènes avec la dernière version de Java 3D.



-3
votes

J'ai eu ce problème.

Il suffit de télécharger Java3D Plugin et installez-le.

dans votre moteur de recherche comme Google Recherche "Java3D Plugin"

et téléchargez-le alors installez-le.


1 commentaires

Il suffit d'installer le plugin à nouveau ne les ajoutez pas nécessairement à la trajectoire de la bibliothèque ou dites à l'IDE où les trouver.



0
votes

Projet / Propriétés / Java Build Path / Onglet Source / Développez et sélectionnez Lieu de la bibliothèque native / Accédez au dossier I386.


1 commentaires

Utilisez plutôt Java 3D 1.6.0. Il n'est pas nécessaire de faire face à l'emplacement de la bibliothèque native avec la dernière version de Java 3D car les bibliothèques indigènes sont stockées dans certains bocaux, JOGL détecte automatiquement le système d'exploitation et l'architecture, les extraits des pots et les chargent.



27
votes

Je sais que cette question est maintenant de quelques années, mais les réponses ici ne me suffisaient pas de résoudre le problème. Ils ont seulement aidé partiellement. http://www.filsa.net/2008/07/17/eclipse-java3d -et-JavalibraryPath / a également été un peu utile, mais ce n'était pas encore suffisant. Par conséquent, je me suis senti obligé d'écrire une liste de contrôle complète pour que Java3D fonctionne dans Eclipse.

Il y a quelques mois, j'ai déjà eu le même problème et je l'ai certainement résolu sans vraiment comprendre ce que j'ai fait. Aujourd'hui, je voulais mettre en place mon environnement sur un ordinateur différent et deviner quoi, j'ai eu le même problème à nouveau. Et j'ai oublié ce que je devais faire ... cette fois cependant, j'ai résolu le problème plus systématiquement et maintenant, je comprends chaque étape.

la solution - chaque étape en détail

1) Si vous importez le projet de quelqu'un d'autre, assurez-vous d'installer le bon JDK et JRE installé et sélectionné dans Eclipse. Mon éclipse avait sélectionné le dernier JRE 7. Le seul que j'avais installé. Mais le projet que je travaille a besoin de JDK 6 et JRE 6. Je recommande la structure suivante sur votre système de fichiers si vous devez avoir plusieurs versions Java

  • Quelqu'un / Java / JDK / JDK6 /
  • Quelqu'un / Java / JDK / JDK7 /
  • Quelqu'un / java / jre / jre6 /
  • Quelqu'un / java / jre / jre7 /
  • Quelqu'un / Java / Java3D /

    2) dans Eclipse , vous devrez procéder comme suit à Sélectionnez le bon JDK et JRE . . .

    • Projet> Propriétés> Java Compiler , Vérifiez "Activer les paramètres spécifiques du projet", puis sélectionnez le niveau de conformité compilateur correct pour votre projet. Dans mon cas, il est 1.6 pour l'utilisation avec JDK6 . (La nommée était vraiment déroutante pour moi, au moins le 6 était un indice.)
    • Vous devez également vous assurer que le bon jre est utilisé lorsque vous exécutez l'application. Par conséquent, ouvrez exécuter> exécuter des configurations et sélectionnez l'onglet JRE. Si vous utilisez JDK 6, vous devez vous assurer que JRE 6 est utilisé. Vous pouvez ajouter des JRES si vous cliquez sur "JRES INSTALLÉ", puis ajoutez le répertoire ONPATH / JAVA / JRE / JRE6 / .

      3) Avoir votre environnement Java configuré correctement, assurez-vous que Java3D est installé sur votre machine. Vous ne pouvez rien faire de mal à cela.

      4) Dans votre répertoire d'installation Java3D, localisez les fichiers

      • j3dcore-ogl.dll (pour Windows; sur Linux c'est j3dcore-ogl.so)
      • j3dcore.jar
      • j3dutils.jar
      • Vecmath.jar

        Peu importe l'endroit où ces fichiers sont situés si vous configurez votre environnement correctement, ce que je vais expliquer. Donc, si vous le souhaitez, vous pouvez copier ces fichiers dans votre répertoire de projet pour avoir tout ce dont vous avez besoin au même endroit.

        5) ayant localisé ces fichiers, assurez-vous que

        • sur votre système d'exploitation, l'emplacement de j3dcore-ogl.dll est ajouté à la variable PATH . Le fichier .dll ou .so contient du code natif de la machine que Java3D utilise. Votre système doit être conscient de l'existence de ce code. Sous Windows, pour définir la variable du chemin, vous ouvrez les paramètres système dans votre panneau de configuration et sélectionnez Paramètres système avancé. En bas, vous trouverez le bouton "Variables d'environnement". Dans la liste Variables du système, vous trouverez la variable "chemin". Assurez-vous que le répertoire de J3DCore-OGL est inclus dans la liste des chemins.
        • Retour en Eclipse, où que les * .jar les fichiers sont actuellement, assurez-vous qu'ils sont inclus dans votre Projet> Propriétés> Java Build Chemin> Bibliothèques . Vous pouvez les ajouter en utilisant ajouter des pots ou Ajouter des pots externes , selon que vous avez copié les trois pots au répertoire de projet ou non.

          6) vient maintenant la partie qui a sauvé ma journée aujourd'hui.

          Pour chacune des bibliothèques Java3D répertoriées dans le chemin de construction Java

          • j3dcore.jar
          • j3dutils.jar
          • Vecmath.jar,

            Vous devez spécifier Localisation de la bibliothèque native . La bibliothèque natale est la j3dcore-ogl.dll , modifier ainsi l'emplacement de la bibliothèque native pour pointer vers le répertoire contenant j3dcore-ogl.dll.

            Je crois que ce sont toutes des étapes à faire pour configurer Java3D dans Eclipse, car je configurais tout sur un nouvel ordinateur aujourd'hui. Maintenant, j'espère que ces instructions permettront d'économiser d'autres pauvres Java-débutants «Journée des étudiants» ou des programmeurs: -)


1 commentaires

Installation obsolète et très compliquée, plutôt Suivez ces instructions: tinyurl.com/cf47kcb



-1
votes

Essayez simplement de ce code, c'est Aide moi:

  GraphicsConfiguration config =
       SimpleUniverse.getPreferredConfiguration();

    Canvas3D canvas3D = new Canvas3D(config);


0 commentaires

-1
votes

J'ai eu le même problème. Résolu, régler le chemin natif:

Propriétés - Java Build Chemin - Librities - Java3DLIB - Lieu de la bibliothèque native - Dossier externe -----> Trouvez le chemin: .... Java / Java3D / 1.5.1 / Bin ou le chemin où est le fichier: j3dcore-ogl.dll


1 commentaires

Version obsolète. Utilisez plutôt Java 3D 1.6.0. Regarde ma réponse. Il n'est pas nécessaire de traiter manuellement des bibliothèques indigènes avec la dernière version de Java 3D.



1
votes

comme un addendum à des réponses données, qu'est-ce qui m'a aidé à définir Java 3D était: Copiez et collez tous les fichiers .dll de «C: \ Program Files \ Java \ Java3D \ 1.5.x \ bin \» à «C: \ Program Files \ Java \ jre6 \ bin \». Donc, former Java3D à mon JRE6 réel (de la corbeille à bin).

précédemment, j'ai également défini le path / (vous pouvez également définir le chemin) pour 3DCore.jar, J3Dutils.jar, Vecmath.jar, J3DCore-OGL.DLL mais n'a toujours pas travaillé.

Après copie après J3DCore-OGL.dll (décrit ci-dessus) et gauche de classe à 3DCore.jar, J3Dutils.jar, Vecmath.jar (dans "C: \ Program Files \ Java \ Java3D \ 1.5.x \ ext \" ) Cela a bien fonctionné.

J'ai trouvé de l'aide ici: http://www.xinapse.com/manual/install_windows. HTML Regardez le point 2.

meilleures salutations


3 commentaires

C'est une très mauvaise idée. Si vous copiez les bibliothèques natales dans la JVM au lieu de définir le chemin de la bibliothèque Java, vous allez casser toutes les applications Applets et Java à l'aide d'une version différente de Java 3D et / ou JOGL. De plus, vous utilisez une version obsolète. Utilisez plutôt Java 3D 1.6.0. Regarde ma réponse. Il n'est pas nécessaire de traiter manuellement des bibliothèques indigènes avec la dernière version de Java 3D.


@ gouessej merci pour votre commentaire. Oui, ma version est obsolète mais elle a toujours fonctionné et jusqu'à présent, je n'ai aucun problème avec cela. Quoi qu'il en soit, je vais le changer à 1.6.0 comme vous l'avez suggéré et pour éviter tout problème à l'avenir. Aussi comme je l'ai mentionné, j'ai laissé mon ensemble de classe. J'aimerais dire que vous avez écrit très bon matériel sur le blog: @ gouessej blog b / r


Cela fonctionne mais vous ne bénéficiez pas de nos bugs. Par exemple, Java 3D 1.5 se bloque simplement sous Windows avec des pilotes Intel (Q35 Express) et AMD (Radeon 3500). Comme j'ai corrigé ces bugs dans Jogl 2.2, seuls les avantages de Java 3D 1.6.0 d'eux. Merci beaucoup pour votre compliment. J'ai beaucoup amélioré mon article grâce aux retours d'autres utilisateurs de Jogamp.



2
votes

Je sais que c'est une question très ancienne, mais certains développeurs installent toujours une version obsolète de Java 3D qui est plus difficile à utiliser avec ou sans l'IDE. Veuillez plutôt utiliser Java 3D 1.6.0 et suivez mes instructions détaillées (en anglais et en français) Disponible ici .


4 commentaires

Et de Maven quand pouvons-nous trouver l'artefact?


La toute dernière version de Java3D n'est pas sur Maven Central, mais nous prévoyons de mettre Java3D 1.7.0 dans cette année.


@gouessej: Est-ce que cela s'est passé?


@Jonasvautherin Veuillez poser cette question à Phil sur le forum officiel de Jogamp dans la section Java3D: forum.jogamp. org / java3d-f3728156.html autant que je sache, ce n'est pas encore sur Maven Central, mais si vous le demandez, cela motivera probablement phil à le télécharger;) Sérieusement, si vous êtes utile pour vous, demandez-vous. C'est poliment, ce ne sera pas un problème. Un autre utilisateur a demandé cela il y a quelque temps.



-1
votes

Résolu - Jonnyo Réponse a raison.

J'utilise Java 8 sur Linux et téléchargé depuis https://java3d.java.net /binary-builds.html (Prendre la version Linux-AMD64 pour un système Intel 64 Bit).

Après avoir décompressez le fichier téléchargé, puis décompressez le J3D-Jre.zip et en ajoutant les fichiers JAR au projet et le libj3dcore-ogl.so au pot, cela n'a toujours pas fonctionné. Je devais ajouter le libj3dcore-ogl.so au chemin de la bibliothèque. (Paresseux que je suis, je viens de la copier à / usr / lib, ce qui suffit.)

maintenant, ça marche.

PS: Assurez-vous de supprimer tout autre J3DCore.jar et J3Dutils.jar à l'avance.


1 commentaires

La réponse de Johnnyo n'est pas correcte, il utilise une version obsolète de Java3D et la page Web que vous avez indiquée sera supprimée car Oracle a cessé de maintenir Java3D 1,5 au moins 6 ans. De plus, la mise en place de bibliothèques autochtones / usr / lib peut casser des applications à l'aide de Java WebStart et / ou d'applets S'ils utilisent une autre version de Java3D car votre bibliothèque natif obsolète sera chargée en priorité, vaincre le but de définir le chemin de la bibliothèque.



-1
votes

J'ai eu ce problème exacte et la solution pour moi (j'utilise Eclipse) consistait à télécharger le 32 bits (i586) (de https://java3d.java.net/binary-builds.html ) archive et utilisez ces indigènes.


1 commentaires

Version obsolète. Utilisez plutôt Java 3D 1.6.0. Regarde ma réponse.



-1
votes

J'ai récemment couru dans ce même problème, voici comment je l'ai réparé:

Run 'Strace Java nom de fichier ' et regarde près du sommet pour des lignes comme " Ouvrir (" / usr / lib / jvm / jre / bin / jre / jre / bin / .. /lib/amd64/libppthread.so "Ce qui vous dira des fichiers binaires que votre système est en cours de chargement.

Dans mon cas, c'est AMD64 qui compte.

Retour à la page de téléchargement Java3D et téléchargez les fichiers binaires pour (dans ce cas) AMD64 Verson et installez cela. Écrasez les fichiers .so dans lib / ext (Vecmath, J3DCore et J3dutils).

Testez à nouveau votre programme Java3D, cela devrait fonctionner.


1 commentaires

Vous ne devez pas copier les pots en lib / ext car il peut entraîner des conflits lorsque plusieurs applets ou applications nécessitent différentes versions incompatibles de Java3D (et JOGL) et de toute façon que le mécanisme d'extension a été supprimé de Java 1.9 (c'est-à-dire non lib / ext dans Java 1.9). Ce que vous conseillez est une mauvaise pratique typique. De plus, il n'est pas nécessaire de traiter manuellement des bibliothèques indigènes avec la dernière version de Java 3D, il n'y a rien à "installer", il suffit de mettre les bocaux appropriés dans la classe de classe de votre application et cela fonctionne. Copier les pots dans le JRE impacte tous les programmes en l'utilisant, ce n'est pas une bonne idée.



0
votes

(Windows Même problème résolu) xxx

copie: j3dcore-ogl. "DLL" dans ce dossier et essayez!


0 commentaires