probleme de compilation

probleme de compilation - Java - Programmation

Marsh Posté le 06-04-2005 à 11:59:10    

salut à tous,
 
je suis un jeune novice en programmation java et je souhaite faire un programme capable de parser et d'afficher des info dans un fichier XML. voila mon programme:
 
import java.io.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.filter.*;
import java.util.*;
 
public class MonProg
{
   static org.jdom.Document document;
   static Element racine;
   static void afficheALL()
   {
      List listRNC = racine.getChildren("RNC" );
      Iterator i = listEtudiants.iterator();
      while(i.hasNext())
      {
         Element courant = (Element)i.next();
         System.out.println(courant.Attribute("id" ).getText()); // l'attribut que je souhaite afficher
      }  
   }
 
   public static void main(String[] args)
   {
      SAXBuilder sxb = new SAXBuilder();
      try
      {
         document = sxb.build(new File("heculy2.xml" )); // mon fichier à parser
      }
      catch(Exception e){}
      racine = document.getRootElement();
      afficheALL();
   }
}
 
en compilant ce programme, le compilateur me retourne :
 
MonProg.java:34: 'class' or 'interface' expected
 
si vous avez des suggestions!

Reply

Marsh Posté le 06-04-2005 à 11:59:10   

Reply

Marsh Posté le 06-04-2005 à 12:03:23    

ton code me donne mal aux yeux
Tu devrais utiliser les balises C/C++ pour le mettre en valeur, et respecter les conventions de style  
Sinon, t'es allé voir ligne 34 ?

Reply

Marsh Posté le 06-04-2005 à 12:06:07    

la ligne 34 c'est la fin du programme, je pensais que c'etait liée au faite qu'il ne voyait pas le package jdom.jar

Reply

Marsh Posté le 06-04-2005 à 12:10:56    

essaye en instanciant un objet de ta classe dans le main
 
ps: je ne vois pas trop pkoi ta méthode afficheALL() est statique
 

Reply

Marsh Posté le 06-04-2005 à 13:21:30    

tatou42 a écrit :

la ligne 34 c'est la fin du programme, je pensais que c'etait liée au faite qu'il ne voyait pas le package jdom.jar


ben non, le message d'erreur aurait été plus explicite
je pense plutot qu'il manque un ; ou des accolades

Reply

Marsh Posté le 06-04-2005 à 13:34:00    

noldor a écrit :

ben non, le message d'erreur aurait été plus explicite
je pense plutot qu'il manque un ; ou des accolades


 
a mon avis s'il manqué un ; ou une accolade, les messages d'erreurs auraient aussi été explicites. Mais bon je viens vous consulter parceque je ne trouve vraiment pas l'erreur et que les erreurs bannales liée à la forme ont déjà été verifiées.

Reply

Marsh Posté le 06-04-2005 à 13:36:59    

:o
T'es sur que tu nous a copié/collé tout ton code ?
 
généralement, le compilo balance cette erreur quand y a du code qui traine en dehors de la définition de la classe :o

Reply

Marsh Posté le 06-04-2005 à 13:48:40    

c'est vraiment tous ce que j'ai mis, puis apres la compile:
 javac -classpath jdom.jar MonProg.java
 
le package jdom est dans le même repertoir je me suis pas cassé la tête

Reply

Marsh Posté le 06-04-2005 à 13:53:53    

:o
quand je compile, moi j'ai ça comme erreurs :

Citation :


MonProg.java:14: cannot resolve symbol
symbol  : variable listEtudiants
location: class MonProg
      Iterator i = listEtudiants.iterator();
                   ^
MonProg.java:18: cannot resolve symbol
symbol  : method Attribute (java.lang.String)
location: class org.jdom.Element
         System.out.println(courant.Attribute("id" ).getText()); // l'attribut que je souhaite afficher
                                   ^
2 errors


 
bizarre hein :ange:

Reply

Marsh Posté le 06-04-2005 à 13:58:25    

la première erreur peut ce comprendre, j'ai declaré une Liste listRNC et j'utilise listEtudiants, en faite c listRNC.
Je t'en remerci, c'etait une erreur bête.
 
Par contre pour la seconde erreur je comprend pas, Attribute est aussi une méthode de la class Element.

Reply

Marsh Posté le 06-04-2005 à 13:58:25   

Reply

Marsh Posté le 06-04-2005 à 14:00:20    

Pourquoi as-tu déclaré toutes tes variables et méthodes en static ? :eek:

Reply

Marsh Posté le 06-04-2005 à 14:03:52    

En faite c'est vrai que la methode afficheALL() n'avait pas besoin d'être en static. Mais en ce qui concerne les autres variables et methodes, c'etait plus simple pour moi de manipuler du static dans un premier temps

Reply

Marsh Posté le 06-04-2005 à 14:32:38    

pour ce à qui ca interresse j'ai trouvél'erreur: j'utilise un moment donnée la class File sans avoir importer le package adequate: java.io.File;
 
merci a vous

Reply

Marsh Posté le 06-04-2005 à 14:34:22    

ce topic me fait halluciner :o
Y a tromperie sur la marchandise

Reply

Marsh Posté le 06-04-2005 à 14:41:26    

remboursé lol, remarque c'est pas payé chère. C'est même à but non lucratif

Reply

Marsh Posté le 06-04-2005 à 14:42:03    

Si t'avais donné le bon code et les bonnes erreurs, ton pb aurait été réglé en 5 minutes :ange:

Reply

Marsh Posté le 06-04-2005 à 14:43:34    

tu veux dire quoi par bon code, j'ai tout bêtement fait un copié collé.

Reply

Marsh Posté le 06-04-2005 à 14:43:56    

tatou42 a écrit :

pour ce à qui ca interresse j'ai trouvél'erreur: j'utilise un moment donnée la class File sans avoir importer le package adequate: java.io.File;


 
alors ya blème passke ton import java.io.*; aurait du être suffisant...
 
bizarroide quan m


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
Reply

Marsh Posté le 06-04-2005 à 14:45:21    

je laisse tomber [:spamafote]

Reply

Marsh Posté le 06-04-2005 à 14:45:35    

ca l'est!

Reply

Marsh Posté le 06-04-2005 à 15:06:14    

deuxième question si quelqu'un est la pour me repondre,
lorsque je parse un fichier XML d'une taille importante, à l'execution de mon porgramme, le système m'envoie une exception:
 
java.lang.OutOfMemoryError
 
il faut dire que le fichier XML à une taille de 10,3 Mo
 
vous savez s'il est possible de faire de l'allocation de memoir pour pouvoir parser un tel fichier?

Reply

Marsh Posté le 06-04-2005 à 15:07:49    

va voir du coté des arguments -Xmx
 
java -Xmx100m MonProgALaCon

Reply

Marsh Posté le 06-04-2005 à 15:12:59    

merci c'est genial ca marche. par contre la reservation peut elle être dynamique? Cad en fonction de la taille du fichier à parser?

Reply

Marsh Posté le 06-04-2005 à 15:14:18    

avec Xmx tu définis la taille maxi du pool d'allocation mémoire. Une fois la machine virtuelle lancée, tu ne peux plus retailler ce paramètre

Reply

Marsh Posté le 06-04-2005 à 15:15:52    

ok merci pour l'info, c'est Cool.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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