fichier properties

fichier properties - Java - Programmation

Marsh Posté le 30-03-2005 à 00:39:38    

salut, j'ai un petit soucis avec les fichiers properties  
voici mon code :
 
import javax.swing.*;
import java.awt.*;
import java.util.*;
import java.io.*;
 
public class Essai extends JFrame {
 
  public static void main(String argv[]) {
 
    JFrame f = new JFrame("Vos Comptes" );
    f.setSize(400,200);
    JPanel pannel = new JPanel();
    Properties p = new Properties();
    FileInputStream in = new FileInputStream ("appli.properties" );
    p.load(in);
    JButton bouton = new JButton(p.getString("oklabel" ));
    pannel.add(bouton);
 
 
    f.getContentPane().add(pannel);
    f.setVisible(true);
  }
 
}
 
 le compilateur m'affiche l'erreur suivante :  cannot resolve symbol /  symbol : method getString (java.lang.String) /  
                                               location : class java.util.Properties
 
 
dans mon fichier appli.properties j'ai : Oklabel=valider. tout mes fichiers se trouvent dans le meme répertoire, et je compile tout sur une invite de commande windows. J'éspère que quelq'un pourra m'expliquer ces histoires de properties. merci (ou bien si vous connaissez des liens en français...)  
 
MERCI
 

Reply

Marsh Posté le 30-03-2005 à 00:39:38   

Reply

Marsh Posté le 30-03-2005 à 00:41:18    

le message d'erreur est clair : java.util.Properties n'a pas de method getString(String) [:spamafote]
 
regarde la javadoc [:spamafote]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 30-03-2005 à 00:46:12    

c'est d'abbord ce que j'ai pensé, mais alors d'ou viens cette méthode getString ???

Reply

Marsh Posté le 30-03-2005 à 01:22:20    

le_bob75 a écrit :

c'est d'abbord ce que j'ai pensé, mais alors d'ou viens cette méthode getString ???


c'est ton code, pas le mien, comment tu veux que je le sache  [:wam]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 30-03-2005 à 01:24:55    

après réflexion, ca vient surement d'une confusion entre Properties et PropertyResourceBundle


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 30-03-2005 à 11:49:17    

effectivement, il n'y a pas de méthode getString dans java.util.properties. c'est donc pour cela qu'il y avait 1 erreur. j'ai essayer avec un RessourceBundle et ca marche. cependant, j'aimerai toujours savoir comment récuperer une chaine de caractère d'un fichier .properties avec dans mon code un properties, et non un RessourceBundle. merci pour les infos. bye

Reply

Marsh Posté le 30-03-2005 à 11:54:24    

La réponse est sur cette page, sauras-tu la retrouver ?  :o


---------------
J'suis timide - Prêt à mourir, mais pas à vivre - Je suis vraiement très fatigué ... - more than meets the eye
Reply

Marsh Posté le 30-03-2005 à 12:15:30    

merci pour le conseil, mais maintenant, j'ai un autre problème : le compilateur m'indique une erreur de type FileNotFoundException, donc je pense qu'il ne trouve pas mon fichier appli.properties. je ne comprend pas pourquoi, pourtant il est dans le meme répertoire que mes sources.

Reply

Marsh Posté le 30-03-2005 à 12:24:41    

Et tes fichires .class sont eux aussi aux même endroit que tes sources ? Je dis ça mais je suis même pas sûr que ce soit là qu'il pointe par défaut.
 
Sinon tu peux toujours essayer de lui indiquer le chemin complet, mais c'est pas top comme solution.


---------------
J'suis timide - Prêt à mourir, mais pas à vivre - Je suis vraiement très fatigué ... - more than meets the eye
Reply

Marsh Posté le 30-03-2005 à 12:34:51    

j'ai déja essayer, mais j'ai toujours la même erreur. je ne comprend pas. et Oui, mes fichiers .class sont dans le même répertoire que mes sources. d'ailleur, je voudrais les mettre dans un fichier spécifique,pour faire un truc propre, mais je suppose qu'il faut que je modifie la var classpath (ou bien path), et comme j'ai déja eu beaucoups de mal à me constituer un environnement de travail qui marche, je n'ai plus trop envie d'y toucher (à ces 2 variable d'environnement). bref, si t'a une idée, je suis preneur. ciao

Reply

Marsh Posté le 30-03-2005 à 12:34:51   

Reply

Marsh Posté le 30-03-2005 à 12:47:49    

essayes peut etre avec ca :

Code :
  1. String myProperties =  Thread.currentThread().getContextClassLoader().getSystemResourceAsStream
  2. ("appli.properties" );
  3. FileInputStream in = new FileInputStream (myProperties);

Reply

Marsh Posté le 30-03-2005 à 13:01:33    

ok, donc j'ai compiler ce que tu m'a envoyé, mais apparement il y a une erreur : il dit trouver un fileInputStream ("appli.properties" ) alors qu'il attent un String.

Reply

Marsh Posté le 30-03-2005 à 13:34:22    

ouais j'ai ecrit un peu n'importe nawak (la fatigue),
essayes ca plutot  

Code :
  1. import java.io.IOException;
  2. import java.io.InputStream;
  3. import java.util.Properties;
  4. import javax.swing.JButton;
  5. import javax.swing.JFrame;
  6. import javax.swing.JPanel;
  7. public class Essai extends JFrame {
  8.  Properties p;
  9.   public Essai(){
  10.    InputStream ins = this.getClass().getResourceAsStream("appli.properties" );
  11.     p = new Properties();
  12.      try {
  13.  p.load(ins);
  14. } catch (IOException e) {
  15.  }
  16. JFrame f = new JFrame("Vos Comptes" );
  17.     f.setSize(400,200);
  18.     JPanel pannel = new JPanel();
  19.     JButton bouton = new JButton(p.getProperty("oklabel" ));
  20.     pannel.add(bouton);
  21.     f.getContentPane().add(pannel);
  22.     f.setVisible(true);
  23.   }
  24. public static void main(String argv[]) throws IOException {
  25.   Essai essai = new Essai();
  26.    
  27.   }
  28. }


 


Message édité par sebi le 30-03-2005 à 13:48:34
Reply

Marsh Posté le 30-03-2005 à 13:48:15    

merci beaucoups, j'ai retster avec ton code ca, marche !
 
je ne sais pas pourquoi ca ne marhcait pas ??? c'est un des mystère du java. en tout cas merci (à tous) pour votre aide.
 
salut

Reply

Marsh Posté le 30-03-2005 à 13:49:35    

oh merde je viens d'editer mon code avec une deuxieme version
 pendant que tu repondais, tant mieux si ca marche mais le code d'en haut marche aussi normallement

Reply

Marsh Posté le 30-03-2005 à 16:51:36    

le_bob75 a écrit :

c'est un des mystère du java.


non. C'est juste que tu essayes d'utiliser des choses sans te documenter dessus [:spamafote]. C'est un peu préseomptueux de ta part de penser que c'est java qui est mystérieux.
 
cf la doc pour utiliser les RessourceBundle, nottament la partie sur la nomenclature des fichiers à respecter : http://java.sun.com/j2se/1.4.2/doc [...] undle.html
 
pour ton problème de FileNotFound, c'est surement que le fichier n'est pas dans le répertoire depuis lequel tu lances alors que tu utilises un chemin relatif => soit tu utilises un chemin absolu, soit tu te débrouilles pour que le répertore de travail de ton appli java soit le bon.
 
Dernière solution (celle proposée par sebi2706) : utiliser les getRessource ... mais là il faut que ton fichier de properties soit dans le classpath


Message édité par benou le 30-03-2005 à 16:52:37

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 31-03-2005 à 00:01:29    

Ce n'est pas la peine, maintenant ca marche. Pourtant, je me suis renseigné avant d'utiliser les properties. le problème, c'est qu'un de mes collègues informaticien (et spécilialiste du java en plus...) m'a dit d'utiliser la méthode getString pour un properties. Or cette méthode s'applique aux ResourcesBundle. pour les properties on utilise getProperty(java.lang.String). Voila, cependant je te remercie de  tes conseils. bonne soirée.
 
ps : tu saurais comment faire pour que mes fichiers .class se mettent dans un fichier que j'appelerai class, afin qu'il ne soit pas mélangés avec mes .java ??? Merci @ bientot

Reply

Marsh Posté le 31-03-2005 à 00:17:56    

option de compile -d [:spamafote]
 
tu pourrais quand même essayer de chercher un minimum avant de poser la question, mmmm ?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Sujets relatifs:

Leave a Replay

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