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

avec Java Discussion :

ClassPath et package !


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 20
    Par défaut ClassPath et package !
    Bonjour,


    J'ai un problème car je n'arrive pas à faire un package de plusieurs fichiers.
    Pour cela, à chaque début de fichier j'ai mis ces instructions :
    package musee;
    export CLASSPATH = .:/home/moi/Bureau/PROJETS


    Mais lors de la compilation (javac *.java) à cette addresse : ~/home/moi/Bureau/PROJETS/musee

    J'ai cette erreur :

    java:2: error: class, interface, or enum expected
    export CLASSPATH = /.:/home/moi/Bureau/PROJETS/
    ^
    1 error



    J'ai un répertoire du nom de "musee". Dans ce répertoire il y a toutes mes classes (plusieurs fichiers).

    Le chemin de ce répertoire "musee" est /home/moi/Bureau/PROJETS

    Ce répertoire se trouve donc dans le répertoire "PROJETS".

    Moi ce que j'ai envie de faire, c'est de faire un package avec toutes les classes du répertoire "musee".



    home

    home/moi

    home/moi/Bureau

    home/moi/Bureau/PROJETS

    home/moi/Bureau/PROJETS/musee

    Dans musee il y a des fichiers.java (abonnes.java, musee.java, objets.java...etc).

  2. #2
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    L'instruction "export CLASSPATH = .:/home/moi/Bureau/PROJETS" n'a rien à voir avec de la syntaxe Java. Ça c'est de la ligne de commande, ça n'a pas sa place dans un fichier Java. Ce que tu souhaites faire d'après ce que je comprends tu veux toutes tes classes dans le package "musee" :
    1. Pour ça tu n'as plus qu'à créer un répertoire "musee" avec tes classes Java dedans.
    2. Tu mets en entête de tes classes "package musee;"
    3. Tu fais ensuite en ligne de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cd /home/moi/Bureau/PROJETS
    javac musee/*.java
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  3. #3
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 20
    Par défaut
    Aaaaaaaaaah ok !!

    Du coup l'instruction "export CLASSPATH = .:/home/moi/Bureau/PROJETS", je ne l'écris qu'une seule fois ???!!
    Puis après, c'est finis (je compile et exécute normalemet) ?

  4. #4
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par YassVegas Voir le message
    Aaaaaaaaaah ok !!

    Du coup l'instruction "export CLASSPATH = .:/home/moi/Bureau/PROJETS", je ne l'écris qu'une seule fois ???!!
    Puis après, c'est finis (je compile et exécute normalemet) ?
    Tu devrais aller faire un petit tour sur la FAQ Java, ça te donnerait une vision plus claire de tout cela : http://java.developpez.com/faq/java/


    Après la lecture de ces deux Q/R, je te dirais que lancer la commande "export CLASSPATH ..." n'est pas utile. Pire, elle fait en sorte que chaque nouvelle application Java ira voir sur le dossier "/home/moi/Bureau/PROJETS" pour lancer les .class nécessaires au lanceur de ton application. Si tu veux rendre ton application plus flexible, il est mieux de proscrire cette commande et de se contenter de ce que j'ai mentionné précédemment.

    Comme ça ensuite, pour lancer ta classe tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cd /home/moi/Bureau/PROJETS
    java -cp ./ musee.MaClasseLanceur
    PS : Là c'est avec l'instruction "-cp" que tu précises ton classpath.

    NB : Voir même je pense que java musee.MaClasseLanceur fonctionnerait.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  5. #5
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 20
    Par défaut
    Oui j'avais lu les FAQ mais de ce que j'en avais compris, c'était que le CLASSPATH était à écrire dans les fichiers java ^^.
    Sinon après je sais que LE CLASSPATH est en quelque sorte le chemin sur le quel il y avoir compilation d'un package.


    En fait, je pensais que le package c'était quelque chose de beaucoup plus compliqué, en fait c'est tout "con"...
    Et dans mon projet actuel, il me sert à rien en fait...


    J'ai même pas besoin de spécifier de CLASSPATH en fait là.
    En fesant "java musee.classequejeveux " dans le répértoire PROJETS... ça marche.

    Merci !

  6. #6
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par YassVegas Voir le message
    Oui j'avais lu les FAQ mais de ce que j'en avais compris, c'était que le CLASSPATH était à écrire dans les fichiers java ^^.
    Sinon après je sais que LE CLASSPATH est en quelque sorte le chemin sur le quel il y avoir compilation d'un package.
    Oui et c'est pour ça que le lier les fichiers compilés de ton projet à une variable d'environnement n'est pas tip-top alors qu'en restant au niveau de la ligne de commande via "java -classpath" ou "java -cp", tu es plus libre.

    NB : Sachant que lorsque tu passeras à des IDE comme Eclipse, etc.. tu n'auras alors plus à te préoccuper de la ligne de commande précise, il s'en chargera lui-même (mais c'est important de cerner ça tout de même).

    Citation Envoyé par YassVegas Voir le message
    En fait, je pensais que le package c'était quelque chose de beaucoup plus compliqué, en fait c'est tout "con"...
    Et dans mon projet actuel, il me sert à rien en fait...
    Disons que le package est une bonne habitude à prendre pour catégoriser ton développement (avec les règles de visibilité que ça impose). Dans la vie pro. les projets à 4 classes, ça n'existe pas donc si on ne catégorise pas, ça devient un calvaire pour s'y retrouver.

    Citation Envoyé par YassVegas Voir le message
    J'ai même pas besoin de spécifier de CLASSPATH en fait là.
    En fesant "java musee.classequejeveux " dans le répértoire PROJETS... ça marche.
    Car implicitement quand tu fais java musee.classequejeveux il te fait : java -classpath ./ musee.classequejeveux

    PS : Si ça marche, n'hésite pas à passer le sujet à résolu (bouton en bas de la discussion).
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/11/2007, 13h45
  2. [CLASSPATH] Impossible d'importer des packages
    Par NoiBe dans le forum NetBeans
    Réponses: 3
    Dernier message: 21/12/2006, 18h18
  3. Réponses: 1
    Dernier message: 26/10/2006, 17h45
  4. [Classpath][packages] problème de lancement de l'appli
    Par gogozep001 dans le forum Général Java
    Réponses: 11
    Dernier message: 19/05/2005, 23h35
  5. [Classpath][Jar]gestion des packages
    Par marcoss dans le forum Général Java
    Réponses: 4
    Dernier message: 24/04/2004, 22h19

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