par un debutant-je trouve pas l erreur

par un debutant-je trouve pas l erreur - Java - Programmation

Marsh Posté le 14-11-2002 à 17:42:39    

import java.io.*;
import java.net.*;
import java.util.*;
import java.lang.*;
 
public class test1 {
String Myfile="arrah";
int MyTab[][]= new int[3][3];
//we need to read the database file
 public void readFile(String MyFile)
 {
    try
    {
     FileInputStream disp =  new FileInputStream(Myfile);
     BufferedReader myInput = new BufferedReader (new InputStreamReader(disp));
     for(int i=0;i<4;i++){
      String MyLine = myInput.readLine();
      StringTokenizer STok = new StringTokenizer(MyLine);
      int id = Integer.parseInt((String)STok.nextElement());
      //MyTab[i][0]  = Integer.parseInt((String)STok.nextElement());
      System.out.println("MyTab[i][0]" );
      //MyTab[i][1]  = Integer.parseInt((String)STok.nextElement());
      System.out.println("MyTab[i][1]" );
      //MyTab[i][2]  = Integer.parseInt((String)STok.nextElement());
      System.out.println("MyTab[i][2]" );
      //MyTab[i][3]  = Integer.parseInt((String)STok.nextElement());
      System.out.println("MyTab[i][3]" );
                         }
      }
    catch (Exception e){
      System.out.println("Error reading problem file " + Myfile);
                      }
   }
 
 public void main(String args[])
 {
     System.out.println("bonjour" );
     System.out.println("bonjour" );
 readFile(args[1]);
 System.out.println("MyTab[2][0]" )
 
Voila l erreur affiche .A la compil ca passe. A lexec(java test1. fichier.txt), ca marque ca:
Exception in thread "main" java.lang.NoSichMethodError

Reply

Marsh Posté le 14-11-2002 à 17:42:39   

Reply

Marsh Posté le 14-11-2002 à 17:46:25    

efface ton .class et recompile


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-11-2002 à 17:52:54    

toujours la meme erreur :(

Reply

Marsh Posté le 14-11-2002 à 17:56:47    

ah ok j'ai mal lu.  
la méthode main s'écrit
 
public static void main(String args[])


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-11-2002 à 18:02:55    

oui en fait c est ce que j avais ecris au debut mais ca me marque une erreur a la compilation:
 
non-static method readFile(javalang.string) cannot be referenced from a static context
     readFile(args[1]);
 
c est pour ca que je l avais enlevé. J avoue ne plus trop me rapeller ce que c est que static.

Reply

Marsh Posté le 14-11-2002 à 18:03:27    

kent83 a écrit a écrit :

oui en fait c est ce que j avais ecris au debut mais ca me marque une erreur a la compilation:
 
non-static method readFile(javalang.string) cannot be referenced from a static context
     readFile(args[1]);
 
c est pour ca que je l avais enlevé. J avoue ne plus trop me rapeller ce que c est que static.




 
je précise que ce n'est pas une bonne solution quesdtion design mais ajoute un static devant ta méthode readFile
 
public static readFile


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-11-2002 à 18:04:07    

une remarque. Compilation OK ne rime pas avec Design et fonctionnalité correcte. Donc bidouiller un code qui ne compile pas ne t'aidera en rien.
 
La preuve ici puisque ca compile mais que ca ne se lance meme pas ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-11-2002 à 18:05:08    

kent83 a écrit a écrit :

import java.io.*;
import java.net.*;
import java.util.*;
import java.lang.*;
 
public class test1 {
String Myfile="arrah";
int MyTab[][]= new int[3][3];
//we need to read the database file
 public void readFile(String MyFile)
 {
    try
    {
     FileInputStream disp =  new FileInputStream(Myfile);
     BufferedReader myInput = new BufferedReader (new InputStreamReader(disp));
     for(int i=0;i<4;i++){
      String MyLine = myInput.readLine();
      StringTokenizer STok = new StringTokenizer(MyLine);
      int id = Integer.parseInt((String)STok.nextElement());
      //MyTab[i][0]  = Integer.parseInt((String)STok.nextElement());
      System.out.println("MyTab[i][0]" );
      //MyTab[i][1]  = Integer.parseInt((String)STok.nextElement());
      System.out.println("MyTab[i][1]" );
      //MyTab[i][2]  = Integer.parseInt((String)STok.nextElement());
      System.out.println("MyTab[i][2]" );
      //MyTab[i][3]  = Integer.parseInt((String)STok.nextElement());
      System.out.println("MyTab[i][3]" );
                         }
      }
    catch (Exception e){
      System.out.println("Error reading problem file " + Myfile);
                      }
   }
 
 public void main(String args[])
 {
     System.out.println("bonjour" );
     System.out.println("bonjour" );
 readFile(args[1]);
 System.out.println("MyTab[2][0]" )
 
Voila l erreur affiche .A la compil ca passe. A lexec(java test1. fichier.txt), ca marque ca:
Exception in thread "main" java.lang.NoSichMethodError
 




 
?


Message édité par HappyHarry le 14-11-2002 à 18:05:38
Reply

Marsh Posté le 14-11-2002 à 18:10:45    

DarkLord a écrit a écrit :

 
 
je précise que ce n'est pas une bonne solution quesdtion design mais ajoute un static devant ta méthode readFile
 
public static readFile




Il n en veut pas("modifier static not allowed here" )

Reply

Marsh Posté le 14-11-2002 à 18:11:35    

HappyHarry a écrit a écrit :

 
 
?




 
javac test1.java pour compiler
java test1 fichier.txt pour l executer

Reply

Marsh Posté le 14-11-2002 à 18:11:35   

Reply

Marsh Posté le 14-11-2002 à 18:12:14    

kent83 a écrit a écrit :

 
 
javac test1.java pour compiler
java test1 fichier.txt pour l executer




 
j'prefere  ;)

Reply

Marsh Posté le 14-11-2002 à 18:13:01    

Moi qui voulait tester un programe qui m avait l air facile avant de m attaquer a mon vrai projet mdr :lol:  :(

Reply

Marsh Posté le 14-11-2002 à 18:13:02    

kent83 a écrit a écrit :

 
Il n en veut pas("modifier static not allowed here" )




 
Mais je dois te recopier tout le code pour que tu arrives à le faire ou quoi ?  
 
public static void readFile(String MyFile)
 
Edit : et les attributs de ta classe doivent etre statique aussi. Bon ce qui fait que ca fait un design tout pourris. Crée déjà un vrai objet que tu instancies et après tu pourras appeller une méthode non statique dessus ...


Message édité par darklord le 14-11-2002 à 18:14:08

---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-11-2002 à 18:13:57    

Cela vient peut se produire si le bin de JAva n'est pas dans ta variable d'environnement path. Tu codes avec quoi ?

Reply

Marsh Posté le 14-11-2002 à 18:14:27    

ghoum007 a écrit a écrit :

Cela vient peut se produire si le bin de JAva n'est pas dans ta variable d'environnement path. Tu codes avec quoi ?




 
c'est une erreur de compilation ... Rien à voir


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-11-2002 à 18:16:23    

tu veux pas faire un copier/coller propre ?

Reply

Marsh Posté le 14-11-2002 à 18:18:44    

import java.io.*;
import java.net.*;
import java.util.*;
import java.lang.*;
 
public class test1 {
String Myfile="";
int MyTab[][]= new int[3][3];
//we need to read the database file
 public static void readFile(String MyFile)
 {
    try
    {
     FileInputStream disp =  new FileInputStream(Myfile);
     BufferedReader myInput = new BufferedReader (new InputStreamReader(disp));
     for(int i=0;i<4;i++){
      String MyLine = myInput.readLine();
      StringTokenizer STok = new StringTokenizer(MyLine);
      int id = Integer.parseInt((String)STok.nextElement());
      //MyTab[i][0]  = Integer.parseInt((String)STok.nextElement());
      System.out.println("MyTab[i][0]" );
      //MyTab[i][1]  = Integer.parseInt((String)STok.nextElement());
      System.out.println("MyTab[i][1]" );
      //MyTab[i][2]  = Integer.parseInt((String)STok.nextElement());
      System.out.println("MyTab[i][2]" );
      //MyTab[i][3]  = Integer.parseInt((String)STok.nextElement());
      System.out.println("MyTab[i][3]" );
                         }
      }
    catch (Exception e){
      System.out.println("Error reading problem file " + Myfile);
                      }
   }
 
 public static void main(String args[])
 {
     System.out.println("bonjour" );
     System.out.println("bonjour" );
 readFile(args[1]);
 System.out.println("MyTab[2][0]" );
 
   }
}
 
Je code avec JDK
Pour le moment l erreur qui s affiche maintenant c est:

Reply

Marsh Posté le 14-11-2002 à 18:20:59    

non static variable Myfile

Reply

Marsh Posté le 14-11-2002 à 18:21:34    

kent83 a écrit a écrit :

non static variable Myfile




 
et Mytab aussi


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-11-2002 à 18:23:14    

j'peux poser une question ?
 
MAIS BORDEL !!! a quoi te sert le parametre de la fonction si tu te sers de l'attribut !!!!

Reply

Marsh Posté le 14-11-2002 à 18:25:12    

DarkLord a écrit a écrit :

 
 
et Mytab aussi




 
c est bon ca a lair de marcher.
Merci.
Ca marque plus qu une petite erreur mais je crois que je sais ce que c est.

Reply

Marsh Posté le 14-11-2002 à 18:26:30    

HappyHarry a écrit a écrit :

j'peux poser une question ?
 
MAIS BORDEL !!! a quoi te sert le parametre de la fonction si tu te sers de l'attribut !!!!




 
en plus clair tu me demandes pourquoi j ai mis cette ligne:static String Myfile=""; ?
parce que sinon ca me marque que Myfile n est pas defini, j avoue aque j ai pas compris pkoi sur le coup

Reply

Marsh Posté le 14-11-2002 à 18:27:19    

kent83 a écrit a écrit :

 
 
c est bon ca a lair de marcher.
Merci.
Ca marque plus qu une petite erreur mais je crois que je sais ce que c est.




 
bon la conclusion à tout ca c'est que tu n'arriveras strictement à rien tant que tu ne te décaracasses pas un peu pour comprendre non pas l'outil mais la logique ... Parce que bon compiler, changer une ligne de code et recommencer jusqu'à ce que ca compile et priez pour que ca fasse ce que tu veux, c'est vraiment plus que foireux .... Voir ma signature pour des tutos pour débutant


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-11-2002 à 18:28:52    

kent83 a écrit a écrit :

 
 
en plus clair tu me demandes pourquoi j ai mis cette ligne:static String Myfile=""; ?
parce que sinon ca me marque que Myfile n est pas defini, j avoue aque j ai pas compris pkoi sur le coup




 
paske tu n'utiles pas la meme casse partout !!!
 
MyFile != Myfile
 

Reply

Marsh Posté le 14-11-2002 à 18:28:52    

kent83 a écrit a écrit :

 
 
en plus clair tu me demandes pourquoi j ai mis cette ligne:static String Myfile=""; ?
parce que sinon ca me marque que Myfile n est pas defini, j avoue aque j ai pas compris pkoi sur le coup




 
regarde ta définition de méthode ... Tu lui passe un objet qui s'appelle Myfile et tu invoques MyFile donc forcément il ne connait pas ... Et il ne va donc pas utiliser celui qui tu lui passes mais ton attribut qui vaut ""  
 
donc meme si ca compile ca marchera pas et on en revient à mon post précédent
 
Edit : grillaid


Message édité par darklord le 14-11-2002 à 18:29:26

---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-11-2002 à 18:31:05    

et les streams t'as le droit de les fermer

Reply

Marsh Posté le 14-11-2002 à 18:31:35    

HappyHarry a écrit a écrit :

et les streams t'as le droit de les fermer




 
un truc à la fois. Là je crois qu'il est déjà bcp trop loin pour penser à ce genre de trucs ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-11-2002 à 18:32:34    

et pis sur le plan de l'organisation, faire de l'affichage dans une méthode qui s'appelle readFile, spa top non plus

Reply

Marsh Posté le 14-11-2002 à 18:32:47    

oula c est compliqué Java. :)  
En fait je crois que c est moi qui ait voulu aller un peu trop vite .
Merci en tout cas pour votre aide et vos conseils, je ne ma ttendais pas a avoir des reponses aussi rapides et precises.
 
PS:Merci de ne pas mettre ce topic dans les topics foireux ;) ou j ai plus qu a changer de pseudos.

Reply

Marsh Posté le 14-11-2002 à 18:33:47    

l'est bien parti pour  :whistle:  

Reply

Marsh Posté le 14-11-2002 à 18:35:51    

kent83 a écrit a écrit :

oula c est compliqué Java. :)  




 
Du peu de ce que j'ai pu voir dans ce post, ce n'est pas un problème d'outil mais de logique ... Je ne connais pas ton parcours mais il me semble que tu as des lacunes en programmation et pas spécialement OO ou Java ...
 
Donc prends du temps pour bien étudier les concepts. Java c'est jamais que des outils et une façon de représenter qqch qui doit etre abstrait dans ta tête ...  
 
Maintenant si tu maitrises pas l'outil c'est vrai que ca le fait pas non plus. Une chose à la fois
 
 :hello:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 14-11-2002 à 20:25:40    

passez par le case http://penserenjava.free.fr


Message édité par benou le 14-11-2002 à 20:25:53
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed