Partage
  • Partager sur Facebook
  • Partager sur Twitter

Executer en java

Sous linux

    12 octobre 2007 à 18:48:40

    Programmant en java sous windowos, j'essaie de m'y metre sous linux, seulement voila, si je n'ai pas de probleme pour compiler, je n'arrive pas a executer mes programes...

    J'ai un répertoire gestion qui contient les fichiers AppGestion.java,Client.java et Comande.java.
    J'ouvre une console sur le repertoire gestion et je fait:

    1. adrien@adrien:/media/USB/_Java/java/tp/gestion$ javac *.java
    2. adrien@adrien:/media/USB/_Java/java/tp/gestion$ java -classpath . AppGestion
    3. Exception in thread "main" java.lang.NoClassDefFoundError: AppGestion (wrong name: gestion/AppGestion)
    4.         at java.lang.ClassLoader.defineClass1(Native Method)
    5.         at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
    6.         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    7.         at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    8.         at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
    9.         at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    10.         at java.security.AccessController.doPrivileged(Native Method)
    11.         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    12.         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    13.         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
    14.         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    15.         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)


    Quelqu'un pourrait il m'aider?
    Merci d'avance :)
    • Partager sur Facebook
    • Partager sur Twitter
      12 octobre 2007 à 18:59:45

      est ce que la classe contenu dans le fichier AppGestion.java s'appelle-t-elle AppGestion ?
      • Partager sur Facebook
      • Partager sur Twitter
        12 octobre 2007 à 19:07:07

        Affirmatif

        1. package gestion;
        2. import java.util.*;
        3. public class AppGestion
        4. {
        5.   public static void main(String[] args)
        6.   {

        [...]

        • Partager sur Facebook
        • Partager sur Twitter
          12 octobre 2007 à 19:15:18

          ton erreur vient donc de "package", vire cette ligne et çà devrait passer.
          • Partager sur Facebook
          • Partager sur Twitter
            12 octobre 2007 à 19:27:28

            Effectivement, ca marche comme ca.
            C'est pourtant mon prof de java qui m'avait demander de metre cette ligne. Peut être que sous windows?
            merci bcp en tout cas!
            • Partager sur Facebook
            • Partager sur Twitter
              12 octobre 2007 à 19:32:46

              hum … non le package marche sous tous les systemes : il faut juste que AppGestion soit dons une direction nommé gestion.
              Les packages (fr: paquetage) sont très pratiques : tu verras çà plus tard avec ton prof :D .
              • Partager sur Facebook
              • Partager sur Twitter
                12 octobre 2007 à 19:34:24

                non mais pour que çà marche, il faut que le fichier soit dans un dossier nommé "gestion"
                il ne faut pas ne mettre si c'est le fichier contenant "main" (du moins je sais pas comment faire)
                • Partager sur Facebook
                • Partager sur Twitter
                  12 octobre 2007 à 19:40:41

                  je n'ai pas compris :

                  Citation : modo sympa

                  il ne faut pas le mettre si c'est le fichier contenant "main"


                  C'est tout à fait possible ! dans tous les fichiers java tu peux le mettre qu'il y ait la méthode main oopa. Sinon çà ne servirait à rien de faire des packages en java !
                  • Partager sur Facebook
                  • Partager sur Twitter
                    12 octobre 2007 à 21:50:35

                    Citation : ミニロプ

                    non mais pour que çà marche, il faut que le fichier soit dans un dossier nommé "gestion"
                    il ne faut pas ne mettre si c'est le fichier contenant "main" (du moins je sais pas comment faire)



                    Oui mais c'est le cas ici, mon fichier est bien dans un dossier nomé gestion...Je ne comprend pas
                    • Partager sur Facebook
                    • Partager sur Twitter
                      14 octobre 2007 à 23:36:05

                      Citation : Shlipak


                      Oui mais c'est le cas ici, mon fichier est bien dans un dossier nomé gestion...Je ne comprend pas



                      Il faut non seulement que ton fichier soit dans un dossier du même nom que le paquet, mais que tu exécutes l'application depuis la racine.

                      Explication: ton fichier qui contient la méthode main déclare un package : org.logiciel.application

                      Ton fichier doit être dans le dossier org/logiciel/application.
                      Pour le lancer correctement, tu dois te placer dans le dossier qui contient le dossier 'org'. Tu fais :
                      java org.logiciel.application.MaClasse


                      Et ça devrait marcher.

                      Bon courage ;)
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Executer en java

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown