IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Problème avec la librairie JUNG


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 6
    Par défaut Problème avec la librairie JUNG
    Bonjour,

    Pour un projet, je dois utiliser la librairie JUNG, qui permet de faire des opérations sur des graphes. J'ai voulu voir si je disposais bien de tous les éléments, en écrivant le "programme" suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    import edu.uci.ics.jung.graph.*;
    import edu.uci.ics.jung.graph.impl.*;
     
     
    class Essai2
    {
    	Essai2()
    	{
    		Graph g = new SparseGraph();
    	}
     
     
     
    	public static void main (String[] arg)
    	{
    		Essai2 premier = new Essai2();
    		System.out.println("a");
    	}
    }
    Je le compile avec la ligne de commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javac -classpath "jung-1.7.6.jar" essai2.java
    (il n'y a pas de problème, le fichier .jar est bien dans le même dossier)

    Par contre, à l'exécution, je vois ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    mat@colgate:~/Desktop/projet$ java Essai2
    Exception in thread "main" java.lang.NoClassDefFoundError: edu/uci/ics/jung/graph/impl/SparseGraph
            at Essai2.<init>(essai2.java:11)
            at Essai2.main(essai2.java:19)
    Je ne comprends pas. Si on se réfère à la doc de l'API (http://jung.sourceforge.net/doc/api/index.html), le deuxième import permet bien d'accéder à SparseGraph !

    (et si je précise la localisation du .jar à l'exécution, j'ai le résultat suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mat@colgate:~/Desktop/projet/na2$ java -classpath "jung-1.7.6.jar" Essai2
    Exception in thread "main" java.lang.NoClassDefFoundError: Essai2
    Quelqu'un pourrait-il m'aider ?

    Merci d'avance!

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    java -classpath "jung-1.7.6.jar":. Essai2

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 6
    Par défaut
    En mettant uniquement le "." pour le répertoire local j'obtiens le même résultat qu'en mettant le .jar:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    mat@colgate:~/Desktop/projet/na2$ java -classpath "." Essai2
    Exception in thread "main" java.lang.NoClassDefFoundError: edu/uci/ics/jung/graph/impl/SparseGraph
            at Essai2.<init>(essai2.java:13)
            at Essai2.main(essai2.java:21)
    Et en mettant les deux c'est la panique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    mat@colgate:~/Desktop/projet/na2$ java -classpath "jung-1.7.6.jar":. Essai2
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections/Predicate
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
            at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
            at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
            at Essai2.<init>(essai2.java:13)
            at Essai2.main(essai2.java:21)

  4. #4
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    C'est peu-être la panique, mais c'est bon signe tout de même!

    Tu as passé les deux erreurs précédentes... L'erreur que tu rencontres là, c'est un autre jar qui manque à ton classpath: le "commons-collections.jar" de Jakarta (que tu utilises directement ou qui et utilisée sans que tu le saches par JUNG...)
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 6
    Par défaut
    Ca fonctionne déjà mieux! Par contre, comment faire pour ajouter tous ces .jar dans le classpath ? (parce qu'il y en a quand même un sacré paquet ...)

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 6
    Par défaut
    En fait, après avoir regardé la librairie de plus près, j'ai réalisé que la plupart des programmes devaient en fait être des applets ...

    Du coup, lorsque j'ouvre le fichier html avec firefox ou avec appletviewer, je n'ai plus la possibilité d'indiquer le chemin des .jar!

    J'obtiens donc ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    java.lang.NoClassDefFoundError: edu/uci/ics/jung/graph/Vertex
            at java.lang.Class.getDeclaredConstructors0(Native Method)
            at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
            at java.lang.Class.getConstructor0(Class.java:2699)
            at java.lang.Class.newInstance0(Class.java:326)
            at java.lang.Class.newInstance(Class.java:308)
            at sun.applet.AppletPanel.createApplet(AppletPanel.java:778)
            at sun.applet.AppletPanel.runLoader(AppletPanel.java:707)
            at sun.applet.AppletPanel.run(AppletPanel.java:361)
            at java.lang.Thread.run(Thread.java:619)
    ps: le programme que je teste ici est un peu plus complexe que le précédent, mais toutes les librairies nécessaires sont bien dans le même répertoire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    import edu.uci.ics.jung.graph.*;
    import edu.uci.ics.jung.utils.*;
    import edu.uci.ics.jung.visualization.*;
    import edu.uci.ics.jung.graph.impl.*; //pour edge et vertex
    import javax.swing.*; //pour le JFrame
    import java.io.*;
    import java.awt.*;
    import java.util.*;
     
     
     
     
     
    public class essai2 extends javax.swing.JApplet 
    {
    	public void init() {
     
         	 Graph g = new DirectedSparseGraph();
     
         	 Vertex v1 = new DirectedSparseVertex();
         	 Vertex v2 = new DirectedSparseVertex();
     
         	 g.addVertex(v1);
         	 g.addVertex(v2);
     
         	 DirectedEdge e = (new DirectedSparseEdge(v1, v2));
     
     
         	 g.addEdge(e);
     
         	 edu.uci.ics.jung.visualization.SpringLayout MyLayout = new edu.uci.ics.jung.visualization.SpringLayout(g);
     
          	 PluggableRenderer  PR = new PluggableRenderer();
     
           	 VisualizationViewer vv = new VisualizationViewer (MyLayout,PR);
     
        	 JFrame jf = new JFrame();
         	 jf.getContentPane().add(vv);
    	}
     
    }
    Merci!

Discussions similaires

  1. Problèmes avec des librairies (.a et .so)
    Par André K dans le forum C
    Réponses: 2
    Dernier message: 23/10/2006, 16h58
  2. Problème avec la librairie POI
    Par clement42 dans le forum Documents
    Réponses: 3
    Dernier message: 18/11/2005, 20h11
  3. [GD] Problème avec la librairie GD et les header !!
    Par jesspepette dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 15/10/2005, 13h09
  4. Problème avec la librairie rfunc sous Firebird
    Par yayelix dans le forum SQL
    Réponses: 4
    Dernier message: 17/05/2005, 17h49
  5. Problème avec les librairies ZLIB et LIBPNG
    Par VenusX117 dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 14/03/2005, 15h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo