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 :

Erreur dans mon programme Java


Sujet :

avec Java

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Erreur dans mon programme Java
    Bonjour,

    Je suis des cours de développement Java, j'ai tapé mon programme mais Eclipse me dit qu'il y a une erreur et je n'arrive pas a la trouver:
    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
    public class exercice
    {
        public static void main(String[] inArg) {
     
            int e;
            int b;
     
            e = Integer.parseInt(inArg[0]);
            b = Integer.parseInt(inArg[1]);
     
            double d = -b / (double) e;
     
            System.out.println("x=" + d);
        }
    }
    merci pour votre aide

  2. #2
    Membre habitué Avatar de r2d2abc
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 212
    Points : 179
    Points
    179
    Par défaut
    Salut, peux-tu nous donner une idée de l'erreur générée( copie des lignes de l'exception ou ..).
    Sinon a premiere vue, il est correct si tant est que tu lui donnes 2 arguments bien sûr et que e!=0
    ...

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par lomu5 Voir le message
    Bonjour,

    Je suis des cours de développement Java, j'ai tapé mon programme mais Eclipse me dit qu'il y a une erreur et je n'arrive pas a la trouver:
    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
    public class exercice
    {
        public static void main(String[] inArg) {
     
            int e;
            int b;
     
            e = Integer.parseInt(inArg[0]);
            b = Integer.parseInt(inArg[1]);
     
            double d = -b / (double) e;
     
            System.out.println("x=" + d);
        }
    }
    merci pour votre aide
    voici les erreurs
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
    at Exemple.main(Exemple.java:9)

  4. #4
    Membre habitué Avatar de r2d2abc
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 212
    Points : 179
    Points
    179
    Par défaut
    very strange ... j'ai ouvert une console et compilé ton code tel quel sans eclipse avec un éditeur de texte, compilé et lancé sans problèmes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    K:\$eclipse_RCP\WS_dummy\src>javac exercice.java
     
    K:\$eclipse_RCP\WS_dummy\pipo\src>java exercice 1 2
    x=-2.0
    peux-tu faire la meme chose s'il te plait ?

    PS: pour info c'est une java version "1.6.0_12"

  5. #5
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par r2d2abc Voir le message
    very strange ... j'ai ouvert une console et compilé ton code tel quel sans eclipse avec un éditeur de texte, compilé et lancé sans problèmes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    K:\$eclipse_RCP\WS_dummy\src>javac exercice.java
     
    K:\$eclipse_RCP\WS_dummy\pipo\src>java exercice 1 2
    x=-2.0
    peux-tu faire la meme chose s'il te plait ?

    PS: pour info c'est une java version "1.6.0_12"
    je viens de le faire mais j'ai encore une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    C:\Documents and Settings\baldi>java Exemple
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
            at Exemple.main(Exemple.java:8)

  6. #6
    Membre habitué Avatar de r2d2abc
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 212
    Points : 179
    Points
    179
    Par défaut
    regarde mes lignes plus haut (tu as oublié les paramètres 1 2) et donc l'accés au tableau sur les indices 0 et 1 plante d'où l'exception ....
    retry please et result please ?

  7. #7
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci
    j'ai recommencé a ça a fonctionné mais je n'ai aucune info sur le paramètre 1 2 dans mon cour.
    Et je ne comprend pas pourquoi ça ne fonctionne pas avec eclipse.

  8. #8
    Membre expérimenté

    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 553
    Points : 1 672
    Points
    1 672
    Par défaut
    Ca n'a rien à voir avec Eclipse, mais plutôt avec le fait que tu n'as pas compris le programme... Le main() que tu as écrit ne peut fonctionner qu'avec au moins deux arguments.

  9. #9
    Membre habitué Avatar de r2d2abc
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 212
    Points : 179
    Points
    179
    Par défaut
    en fait si tu me permets, analyse ton code avec moi.

    1. Le point d'entrée d'exécution de ton application (si petite soit elle c'en est une) est la fonction main qui recoit un argument de type tableau inArg. Cet argument contient les valeurs passées en paramètres de ligne de commande.

    java exercice<espace 1..P><argument 1><espace 1..P><argument N>..



    ex1: java exercice -> aucun argument
    ex2: java exercice A -> 1° argument=A
    ex3: java exercice A B -> 1° argument=A , 2° argument=B
    ex4: java exercice "Ah que coucou" lomu5 -> 1° argument=Ah que coucou , 2° argument=lomu5
    ...
    rem: remarque bien les ".." du 1° argument

    Donner des arguments t'assure que les accés au tableau inArg plus bas se feront correctement dans le respect des indices. Ici tu en demandes 2 (inArg[0] et inArg[1]). Tu dois donc en passer au moins 2.

    2. Le type des arguments. Tu effectues un calcul sur des nombres. Il te faut donc passer en argument des nombres en relations avec ton calcul. En java (comme bcp d'autres langages) tout processing "hors norme" génère une exception, c'est à dire que si tu demandes à l'exécuteur de ton code (ici java.exe) quelque chose d'interdit, il te le signifiera.


    ex1: java exercice 10 5 -> arguments et calcul possible
    ex2: java exercice 0 123 -> arguments incorrect car dénominateur=0
    ex3: java exercice Ah 12 -> 1° arguments incorrect (une String) -> exception générée = java.lang.NumberFormatException
    ex4: java exercice 1 -> aucun argument ou un seul-> exception java.lang.ArrayIndexOutOfBoundsException


    Rajoute donc cette ligne pour t'aider à visualiser tes arguments et jouer .

    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
    public class exercice
    {
        public static void main(String[] inArg) {
            
            for (int i=0;i<inArg.length;i++) System.out.println("arg :\t"+i+" -> "+inArg[i].toString());
    
    
            int e;
            int b;
    
            
            e = Integer.parseInt(inArg[0]);
            b = Integer.parseInt(inArg[1]);
            
            double d = -b / (double) e;
            
            System.out.println("x=" + d);
        }
    }
    .. puis rajoute ce bloc pour gérer une exception toi même ...

    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
     
    public class exercice
    {
     
    	public static void main(String[]inArg) 
    	{
    		for (int i=0;i<inArg.length;i++) System.out.println("arg :\t"+i+" -> "+inArg[i].toString());
     
    		int e,b;
     
    		try 
    		{
    			e=Integer.parseInt(inArg[0]);
    			b=Integer.parseInt(inArg[1]);
    			double d=-b/(double)e;
    			System.out.println("x="+d);
    		} 
    		catch (Exception ex) 
    		{
    		System.out.println("Mon exception: -> "+ex.toString());
                    //ton code ici de gestion de l'exception ...  
    	    }
    	}
     
    }
    Voilà, sinon n'oublie pas de rergarder les tutoriels de ce forum ils sont une référence.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 28
    Points : 30
    Points
    30
    Par défaut
    OK, je peus pas m'en empêcher mais ... eclipse te met une erreur sur :

    ??

    Non parce que est ce que par le plus grand des petits hasards (ok, disons que c'est juste pour m'assurer d'une chose hein) , tu ne devrait pas écrire :

    ??



    Bon je sors ^^

  11. #11
    Membre éclairé Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Points : 676
    Points
    676
    Par défaut
    Citation Envoyé par pandorz Voir le message
    OK, je peus pas m'en empêcher mais ... eclipse te met une erreur sur :

    ??

    Non parce que est ce que par le plus grand des petits hasards (ok, disons que c'est juste pour m'assurer d'une chose hein) , tu ne devrait pas écrire :

    ??



    Bon je sors ^^
    Bonjour,

    ca c'est n'est pas une erreur du tous! Une class java n'est pas obliger de commencer par une majuscule!!
    par contre il est fortement recommander de le faire, pour des raison de faciliter de compréhension

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/04/2008, 04h33
  2. je ne trouve pas l'erreur dans mon programme
    Par Briska dans le forum Débuter
    Réponses: 19
    Dernier message: 04/04/2008, 09h21
  3. erreur dans mon code "java.lang.NullPointerException"
    Par wiss20000 dans le forum Langage
    Réponses: 12
    Dernier message: 19/04/2007, 09h08
  4. [Help] Erreurs dans mon programme
    Par Tacha dans le forum Langage
    Réponses: 13
    Dernier message: 02/10/2006, 13h57
  5. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59

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