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

Java Discussion :

Commande java -cp


Sujet :

Java

  1. #1
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 62
    Points
    62
    Par défaut Commande java -cp
    Bonjour,

    L'autre jour j'ai utilisé cette commande :

    java -cp ./bin appli.FichierMaClasse

    Mon workspace est organisé comme suit :
    - bin avec dedans mes futures .class
    - src avec dedans les .java (il y a 4 dossiers, avec un .java dans chacun d'eux, dont un appelé appli)

    Je pensais que la commande en question était équivalente à java FichierMaClasse sans trop entrer dans l'arborescence, mais apparemment non.

    Pourriez-vous m'expliquer cette commande ?

    Merci beaucoup !

  2. #2
    Membre habitué Avatar de Savak
    Homme Profil pro
    Ingénieur Etude et Développement
    Inscrit en
    Avril 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur Etude et Développement

    Informations forums :
    Inscription : Avril 2012
    Messages : 111
    Points : 198
    Points
    198
    Par défaut
    -classpath classpath
    -cp classpath
    Specifies a list of directories, JAR files, and ZIP archives to search for class files. Separate class path entries with semicolons (. Specifying -classpath or -cp overrides any setting of the CLASSPATH environment variable.

    If -classpath and -cp are not used and CLASSPATH is not set, then the user class path consists of the current directory (.).

    As a special convenience, a class path element that contains a base name of * is considered equivalent to specifying a list of all the files in the directory with the extension .jar or .JAR. A Java program cannot tell the difference between the two invocations.

    For example, if directory mydir contains a.jar and b.JAR, then the class path element mydir/* is expanded to a A.jar:b.JAR, except that the order of jar files is unspecified. All jar files in the specified directory, even hidden ones, are included in the list. A class path entry consisting simply of * expands to a list of all the jar files in the current directory. The CLASSPATH environment variable, where defined, will be similarly expanded. Any class path wildcard expansion occurs before the Java VM is started. No Java program will ever see wild cards that are not expanded except by querying the environment. For example, by calling System.getenv("CLASSPATH").
    Source : Java docs

    En fait la commande "java" a pour objectif de lancer un .class existant (fichier compilé). Si tu veux compiler tes .java (créer les .class), il faut que tu utilise la commande "javac" sans oublier de spécifier à ton système le chemin de ton jdk. En gros ça donnera un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    C:> cd \mywork
    C:\mywork> set path=%path%;C:\Program Files\Java\jdk1.5.0_09\bin
    C:\mywork> javac filenamehere.java
    C:\mywork> java filenamehere

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par St-42-FCM-57 Voir le message
    Je pensais que la commande en question était équivalente à java FichierMaClasse sans trop entrer dans l'arborescence, mais apparemment non.
    Bah il y a un peu de ça quand même, si.

    -cp est équivalent à -classpath. Le classpath quand on lance un programme Java, c'est la liste des endroits où on peut chercher les classes de ce programme : les classes du programme proprement dit, et les classes des bibliothèques annexes.

    Donc la commande dont tu parles dit :

    - Je veux lancer un programme Java. Puisqu'il n'y a pas le paramètre -jar, je veux le lancer en indiquant le nom d'une classe qui contient la méthode main().
    - Les classes de mon programme se trouvent dans le répertoire ./bin
    - La classe dont je veux exécuter le main() est la classe appli.FichierMaClass

    Sachant que si tu n'avais pas précisé -cp, il est convenu par défaut que le classpath, c'est le répertoire en cours. Ce qui ne marcherait pas puisque le répertoire en cours, ce n'est pas lui qui contient tes classes.

    Donc oui, on peut dire que cette commande est équivalente java FichierMaClasse sans avoir besoin d'entrer dans l'arborescence.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Bonjour,

    Merci beaucoup pour ces réponses rapides, j'ai eu la réponse à ma question !

    Bonne journée à vous !

  5. #5
    Membre habitué Avatar de Savak
    Homme Profil pro
    Ingénieur Etude et Développement
    Inscrit en
    Avril 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur Etude et Développement

    Informations forums :
    Inscription : Avril 2012
    Messages : 111
    Points : 198
    Points
    198
    Par défaut
    Super! N'oublies pas mettre ton post en résolu

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

Discussions similaires

  1. probleme avec la commande java
    Par blaise_laporte dans le forum EDI et Outils pour Java
    Réponses: 3
    Dernier message: 14/03/2007, 17h33
  2. commande java sous unix
    Par root76 dans le forum Langage
    Réponses: 4
    Dernier message: 01/03/2007, 11h43
  3. . dans argument commande java
    Par Flobel dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2006, 17h53
  4. Ligne de commande Java
    Par jakinson dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 06/04/2006, 10h44
  5. [débutant][Classpath] Commande java inconnue
    Par Regis.C dans le forum Général Java
    Réponses: 4
    Dernier message: 03/08/2004, 11h12

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