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

Shell et commandes GNU Discussion :

J2SE - $CLASSPATH sous Linux


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 4
    Par défaut J2SE - $CLASSPATH sous Linux
    Bonjour à tous, j'ai installé java sous Linux.
    j'ai un problème avec var CLASSPATH (set)
    ex: le mien:
    CLASSPATH=:/home/minh
    Dans myprog.java
    package Ex;
    .............................

    Dans l'autre fichier : test.java
    package Ex;
    import Ex.*;
    ...........................

    Mais ça ne fonctionne pas.
    Des erreurs se posent : pas trouvé des classes dans myprog


    Ou: test.java ne peut pas importer des classes dans myprog.java.

    J'ai essayé pls possibilités telle que : package minh.Ex.*; .....
    même : javac -cp myprog.class test.java , pls fois autres .
    Le problème reste toujours comme ça .

    Par contre,avec Jcreator , ça marche bien . je ne sais pas régler CLASSPATH avec celui-ci.

    JE PREFERE à utiliser sous LINUX

    Veuillez vous m'aider , SVP ?
    MERCI BEAUCOUP !
    :o

  2. #2
    Membre éclairé
    Inscrit en
    Août 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 89
    Par défaut
    je suis pas spécialiste du java, alors je te montre le mien, j'espere que ça peut te servir :

    export JAVA_HOME=/opt/java/jdk1.5.0_05
    export CLASSPATH=$JAVA_HOME/lib/tools.jar:.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 4
    Par défaut
    Alors, Franchement :
    J'ai 3 fichiers dont leur chemin est:
    /home/minh/Todo2email/
    TodoItem.java
    TodoList.java (importer des classes de TodoItem.java)
    Todo2email.java (importer des classes de TodoItem.java et TodoList.java)

    Voilà ! Dans chaque fichier : package Todo2email;
    car : var CLASSPATH=/home/minh <--(commande set)
    dans TodoList.java : import Todo2email.*;
    dans Todo2email.java: import Todo2email.*;

    Mais. Ils ne se trouvent pas.Ou bien, je peux pas importer ces 2 fichiers.
    J'ai essayé avec : javac -cp TodoItem.class TodoList.java

    1ere aff: error reading TodoItem.class
    pls aff: CANNOT FIND SYMBOL

    J'espère que c'est plus clair pour toi .

    Merci ta réponse!!!! :o

  4. #4
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut
    Bonjour,
    Premièrement il me semble que tu ne cerne pas le concept de CLASPATH en java. Je te conseil donc de faire quelques recherches sur le forum java du site. Ça a du être traité decentaines de fois (ou sinon google est très fort aussi)

    TodoList.java (importer des classes de TodoItem.java)
    Todo2email.java (importer des classes de TodoItem.java et TodoList.java)
    Ces classes là n'ont rien à importer ! En effet tes 3 classes se trouvent dans le même package 'Todo2emai'

    Voilà ! Dans chaque fichier : package Todo2email;
    ok ça c'est bien

    car : var CLASSPATH=/home/minh <--(commande set)
    Fais plutot 'export CLASSPATH=/home/minh/' ou utilise l'option '-cp' de java.

    dans TodoList.java : import Todo2email.*;
    dans Todo2email.java: import Todo2email.*;
    Pas la peine car tes classes sont dans le même package.


    J'ai essayé avec : javac -cp TodoItem.class TodoList.java
    L'option '-cp' de java n'est disponible que depuis java1.5. Donc pour être sur, utilise plutot '-classpath' avec la commande javac. Deuxièmement, un CLASSPATH ne contient que des répertoires (les packages) ou des .jar, mais jamais de .class ! Dans ton cas tu veux les .class dans le même répertoire que tes sources donc il suffit de faire :
    cd /home/minh/
    javac ./Todo2email/*.java
    au passage je te dirais que les noms de package doivent toujours être en minuscule. Ce n'est pas obligatoire, mais c'est un règle souvent respectée

    Puis pour lancer ton programme :
    java -cp ./Todo2email/ Todo2email.Todo2email

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 27
    Par défaut pb classpath
    Bonjour,
    je rencontre également un soucis avec Classpath. En effet :
    [ally@localhost dom]$ java -jar xerces.jar
    Error: could not find libjava.so
    Error: could not find Java 2 Runtime Environment.

    Alors voici mon fichier de classpath :
    #!/bin/sh
    export PATH=/usr/java/jdk1.5.0_06/jre/bin
    export CLASSPATH=$PATH/lib/tools.jar:$PATH/jre/lib/rt.jar
    export JAVA_HOME=/usr/java/jdk1.5.0_06
    export JDK_HOME=/usr/java/jdk1.5.0_06

    Je ne vois pas d'où vient le pb, si quelqu'un pouvait m'aider!

  6. #6
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut
    Error: could not find libjava.so
    Error: could not find Java 2 Runtime Environment.
    Apparemment ton système ne trouve pas la libraire java.

    Essaye de modifier ton fichier de cette manière :

    #!/bin/sh
    export PATH=$PATH:/usr/java/jdk1.5.0_06/jre/bin
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/java/jdk1.5.0_06/jre/lib/i386/
    export CLASSPATH=$PATH/lib/tools.jar:$PATH/jre/lib/rt.jar
    export JAVA_HOME=/usr/java/jdk1.5.0_06
    export JDK_HOME=/usr/java/jdk1.5.0_06

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 27
    Par défaut
    Toujours pareil!

    Je suis même allée modifier le fichier /etc/ld.so.conf mais toujours pareil!


    Voici mon dernier java.sh :

    #!/bin/bash
    export PATH=$PATH:/usr/java/jdk1.5.0_06/jre/bin
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/java/jdk1.5.0_06/jre/lib/i386/
    export JAVA_HOME=/usr/java/jdk1.5.0_06
    export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
    export JDK_HOME=/usr/java/jdk1.5.0_06

  8. #8
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 883
    Par défaut
    Bonjour

    Alison, merci de mettre les balises codes D'autre part as-tu consulté notre pour Linux ? http://linux.developpez.com/faq/?pag...allationsunjvm

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 27
    Par défaut
    Ok excuses moi pour les balises mais la faq linux ne m'a rien apprise!

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 4
    Par défaut
    MERCI A TOUS .
    Je suis arrivé à compiler et exécuter mes fichiers java.

    Le problème est le nom de package . J'ai mis en majuscule la 1ere lettre comme:
    package Todo2email;
    ça va pas!!!
    J'ai changé comme: package todo2email; <--- mon dieu, elle fonctionne

    *2 ieme chose, c'est que :

    javac ./Todo2email/*.java
    java -cp ./Todo2email/ Todo2email.Todo2email

    !!!!!! ---> Ells ont compilé . Mais le prog fonctionne pas !!

    Exception in thread "main" java.lang.NoClassDefFoundError: Todo2email/Todo2email

    Merci narmataru !
    La commande comme:
    javac -cp /home/minh TodoList.java
    puis , j'ai essayé :
    java -cp /home/minh Todo2email.Todo2email
    ça a fonctionné très bien . ??? (Majuscule)

    Merci adiGuba
    J'ai encore 1 ? : la commande "export" fait quoi ? ça permet de faire quoi ?
    Merci beaucoup !!! :o

  11. #11
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut
    Citation Envoyé par nmqm
    javac ./Todo2email/*.java
    java -cp ./Todo2email/ Todo2email.Todo2email

    !!!!!! ---> Ells ont compilé . Mais le prog fonctionne pas !!

    Exception in thread "main" java.lang.NoClassDefFoundError: Todo2email/Todo2email

    Merci narmataru !
    La commande comme:
    javac -cp /home/minh TodoList.java
    puis , j'ai essayé :
    java -cp /home/minh Todo2email.Todo2email
    ça a fonctionné très bien . ??? (Majuscule)

    Merci adiGuba
    Effectivement j'avais écrit n'importe quoi La solution d'adiguba est bien la bonne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter un jar dans le classpath sous Linux/Unix
    Par AbA2L dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 23/03/2015, 19h05
  2. Classpath non definie et pas d erreur sous linux
    Par fantomas261 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 18/03/2010, 11h56
  3. Configuration CLASSPATH sous Linux
    Par habasque dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 18/04/2007, 19h25
  4. [Linux]CLASSPATH sous Linux
    Par Abdelkaoui dans le forum Général Java
    Réponses: 8
    Dernier message: 20/09/2004, 11h36
  5. Je ne peux établir une connexion cliente sous Linux.
    Par Anonymous dans le forum CORBA
    Réponses: 5
    Dernier message: 16/04/2002, 15h57

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