Exception en java

Résolu
saidreal -  
KX Messages postés 19031 Statut Modérateur -
bonjour

svp j'ai un problème lorsque je veux exécuter mon code java contenant l'instruction:
int x=Integer.parseInt(args[0]);
il me leve une exception: Exception Thread java"main java.lang.Array.IndexOutOfBoundsException: 0
je veux saisir par le clavier des données numérique aprés : System.out.println("donner x"); ou par une autre méthode si vous la connaissez.
je pense que la CLASSPATH est mal configuréee (comment svp?)
j'ai Windows XP.
merci de votre aide

2 réponses

  1. agonis57 Messages postés 44 Statut Membre 1
     
    ton exception n'a rien a voir avec le classpath. indexoutofbounds veut dire ce qu'il dit, tu as passé un mauvais index.

    les tableaux en Java sont numérotés à partir de 1, à moins que je me trompe complètement.

    Ce qui est sûr c'est que ca n'a rien a voir avec ton classpath
    0
    1. saidreal
       
      bonjour
      les tableaux sont indexés de 0 à n-1 si n est la longueur du tableau,
      tout simplement je veux saisir des NOMBRES à partir du clavier
      et merci
      je vois qlq uns font :
      int x=Ineger.paresInt(args[i]); 0<=i<=args.lenght
      ou
      x=System.in.read() mais celà ne fonctionne pas ???
      0
    2. agonis57 Messages postés 44 Statut Membre 1
       
      ok autant pour moi alors, j'avais bien un doute sur ce que je t'ai dit.

      bon j'ai tapé les quelques lignes de codes, et c'est tout simple :

      la vaiable args n'est pas forcément instanciée. si tu ne passe pas de paramètre a ton appel à l'exécutable java, args[0] n'existe pas.

      il faut protéger cet appel par un test sur args.length.

      voila un exemple type :


      import java.util.*;
      
      public class test
      {
      	public static void main(String[] args)
      	{
      		test t = new test();
      		if(args.length >= 1)
      		{
      			int x=Integer.parseInt(args[0]);
      			System.out.println(x);
      		}
      	}
      	
      	test()
      	{
      	}
      }
      0
    3. Anonyme
       
      Bonjour


      une autre solution à ton problème

      par ici :

      [url="http://www.world-prog.com/modules/newbbex/viewtopic.php?topic_id=128&forum=1"] Problèmes et solutions java [/url]

      salut
      0
      1. saidreal > Anonyme
         
        merci mon ami pour votre contribution,
        1/ j'ai rien trouvé dans le lien que vous avez saisi .
        2/ votre réponse est venue trop tardive (4 ans de retard) mais merci une 2eme fois
        3/ j'ai trouvé la solution: il suffit de saisir les paramètres dans leurs emplacements adéquats.
        bonne nuit
        0
  2. Rahma
     
    J'ai essayé de faire comme vous avec précisé c'est à dire j'ai instancié un objet de la classe mais quand j'écris args[0], une exception persiste. quoi faire?
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Ne te greffe pas sur une discussion résolue il y a plus de 6 ans !!!
      Si tu as une exception en faisant args[0] c'est parce que args.length==0, autrement dit, tu n'as pas passé d'arguments lors de l'exécution de ton programme Java.
      Regarde le tutoriel Command-Line Arguments pour voir comment s'en servir correctement.
      0
    2. Rahma
       
      Oui exactement je n'ai pas passé d'arguments lors de l'exécution de mon programme Java. Mais sincèrement j'ai pas su comment faire pour remplir le tableau args[] lors de l'exécution. peut être ça apparaît débile mais je suis débutante et je sais pas comment faire. j'ai lu le tutoriel mais j'ai pas compris grande chose.
      Merci de me répondre et aider.
      0
    3. KX Messages postés 19031 Statut Modérateur 3 020
       
      Dans le tutoriel, la classe Echo lit tous les paramètres passés au programme et les affiche un à un.

      java Echo Drink Hot Java
      java Echo : c'est pour exécuter la classe Echo (a priori ça tu connais)
      Drink correspond à args[0], de même Hot c'est args[1] et Java c'est args[2]
      0
    4. Rahma
       
      mais non je connais rien. S'il te plaît, où écrire ECHO??? peux tu m'expliquer les étapes petit à petit. qu'est ce que je dois écrire et où et comment effectuer l'éxecution????? JE me sens perdue.merci
      0
    5. KX Messages postés 19031 Statut Modérateur 3 020
       
      Si tu as une exception qui apparaît dans ton programme, c'est bien que tu as compilé et exécuté ta classe non ? Comment tu as fait ?
      Ici tu as une classe Echo dans un fichier Echo.java, que tu compiles pour te donner un fichier Echo.class et c'est ce fichier Echo.class que tu exécutes en appelant la commande java Echo
      Si ton programme s'appelle autrement tu changes Echo par le nom de ta classe, moi je n'ai fait que reprendre l'exemple du tutoriel d'Oracle que je t'ai donné hier.
      0