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 :

Execution d'un programme java a partir d'une console MS-DOS


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 124
    Points : 48
    Points
    48
    Par défaut Execution d'un programme java a partir d'une console MS-DOS
    Salut,

    voilà j'ai un problème pour exécuter un programme java a partir d'une console ms-dos.
    Je pensais que c'était du a mon appli, j'ai donc crée une appli tres tres simple avec juste un main et un system.out... mais j'ai tjrs le problème.
    Donc voici mon fichier java :
    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
    /*
     * Main.java
     *
     * Created on 3 novembre 2005, 11:07
     *
     * To change this template, choose Tools | Options and locate the template under
     * the Source Creation and Management node. Right-click the template and choose
     * Open. You can then make changes to the template in the Source Editor.
     */
     
    package javaapplication11;
     
    /**
     *
     * @author vab
     */
    public class Main {
     
        /** Creates a new instance of Main */
        public Main() {
        }
     
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
            System.out.println("ENFIN");
        }
     
    }
    je l'ai compilé depuis ma console ms-dos en faisant :
    javac Main.java
    et maintenant j'essai de l'exécuté en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java L:\Fichiers_JAVA\ejb_tests\JavaApplication11\src\javaapplication11\Main
    mais la j'obtiens l'erreur suivante :
    Exception in thread "main" java.lang.NoClassDefFoundError: L:\Fichiers_JAVA\ejb_tests\JavaApplication11\src\javaapplication11\Main
    ET je ne comprends pas pourquoi :
    voila ce que me renvoie ma variable CLASSPATH :
    C:\Documents and Settings\vab>echo %CLASSPATH%
    L:\java\plateformes\j2sdk1.4.2_04\bin;L:\java\plateformes\j2eesdk1.4_2005Q1-windows\bin;L:\java\plateformes\apache-ant-1.6.3\bin;L:\java\plateformes\jboss-4\bin
    ;L:\install\Jndi;L:\Fichiers_JAVA\ejb_tests\JavaApplication11\src\javaapplication11\
    je suppose que je fais mal quelque chose mais je ne sais pas quoi...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Essaye juste java Main puisque le repertoire fait deja parti de ton classpath !!

    Verifie que le fichier Main.class existe bien dans ton repertoire!!
    UML avec VIOLET

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 124
    Points : 48
    Points
    48
    Par défaut
    c'est pareil j'obtiens :
    L:\Fichiers_JAVA\ejb_tests\JavaApplication11\src\javaapplication11>java Main
    Exception in thread "main" java.lang.NoClassDefFoundError: Main (wrong name: jav
    aapplication11/Main)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut Re: Execution d'un programme java a partir d'une console MS-
    Salut,


    Tu ne lances pas correctement ton application. La commande java n'attend pas le chemin du fichier mais le nom complet de la classe (package + nom). Donc dans ton cas : javaapplication11.Main.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java javaapplication11.Main
    Il recherchera le fichier *.class dans son CLASSPATH. Par défaut le répertoire courant est utilisé, donc il faut que tu lances cette commande depuis le répertoire "L:\Fichiers_JAVA\ejb_tests\JavaApplication11\src\". Sinon il faut spécifier le classpath :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -classpath L:\Fichiers_JAVA\ejb_tests\JavaApplication11\src\ javaapplication11.Main
    a++

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Es tu sur que le Main.class à ete correctement créé et qu'il n'est pas dans le repertoire bin/... plutot que src/... ?
    UML avec VIOLET

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 124
    Points : 48
    Points
    48
    Par défaut
    OK! je te remercie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -classpath L:\Fichiers_JAVA\ejb_tests\JavaApplication11\src\ javaapplication11.Main
    ça fonctionne.

    Juste une question pourquoi quand je suis dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L:\Fichiers_JAVA\ejb_tests\JavaApplication11\src
    et que je fais juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java javaapplication.Main
    ca ne fonctionne pas?

    merci bcp pour votre aide!

  7. #7
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par nana1
    Juste une question pourquoi quand je suis dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L:\Fichiers_JAVA\ejb_tests\JavaApplication11\src
    et que je fais juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java javaapplication.Main
    ca ne fonctionne pas?
    java prendra comme valeur de classpath le premier élément qu'il trouve dans l'ordre suivant :
    • La valeur passé en paramètre avec -classpath.
    • La valeur de la variable d'environnement CLASSPATH.
    • Le répertoire courant.


    Donc je pense qu'un programme a créé cette variable d'environnement... Le mieux serait de la supprimé (attention toutefois car cela peut avoir des effets sur ce programme...)

    a++

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 124
    Points : 48
    Points
    48
    Par défaut
    J'ai un .bat qui met en place les variables d'environnement. C'est justement pour cela que je ne comprends pas bien pourquoi ca ne fonctionne pas directement...
    voici mon prog :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @echo off
     
    set JAVA_HOME=L:\java\plateformes\j2sdk1.4.2_04
    set J2EE_HOME=L:\java\plateformes\j2eesdk1.4_2005Q1-windows
    set ANT_HOME=L:\java\plateformes\apache-ant-1.6.3
    set CATALINA_HOME=L:\java\plateformes\Tomcat 5.0
    set TOMCAT_HOME=L:\java\plateformes\Tomcat 5.0
    set CATALINA_BASE=L:\java\plateformes\Tomcat 5.0
    set TOMCAT_BASE=L:\java\plateformes\Tomcat 5.0
    set JBOSS_HOME=L:\java\plateformes\jboss4
    set PATH=%PATH%;L:\java\plateformes\j2sdk1.4.2_04\bin
     
    set CLASSPATH=%CLASSPATH%;L:\Fichiers_JAVA\ejb_tests\JavaApplication11\src\javaapplication11
    et avec ca pourquoi quand je fais juste un java application.Main ca ne fonctionne pas?

  9. #9
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Le CLASSPATH doit pointer vers le répertoire de base de tes fichiers classes. Il ne doit en aucun cas contenir les répertoires correspondant au package...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set CLASSPATH=%CLASSPATH%;L:\Fichiers_JAVA\ejb_tests\JavaApplication11\src

  10. #10
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 124
    Points : 48
    Points
    48
    Par défaut
    Ok merci pour vos supers explications!

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

Discussions similaires

  1. Execution d'un programme java
    Par t.n.b.g dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 17/03/2008, 16h25
  2. execution d'un programme java
    Par new_wave dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 09/03/2008, 18h28
  3. Probleme execution d'un programme java
    Par arnaud036 dans le forum Langage
    Réponses: 4
    Dernier message: 30/08/2007, 11h06
  4. Réponses: 1
    Dernier message: 10/11/2006, 11h04
  5. [debutant] execution d'un programme java sous DOS
    Par rika dans le forum Langage
    Réponses: 13
    Dernier message: 26/10/2005, 18h27

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