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

Eclipse Java Discussion :

Execution d'un programme java


Sujet :

Eclipse Java

  1. #1
    Débutant   Avatar de t.n.b.g
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 237
    Points : 99
    Points
    99
    Par défaut Execution d'un programme java
    bonjours tout le monde
    je suis entraint de developper un programme en java et en executant la class contenant le main je resoit un message d'erreur que j'ai pas pu connaitre la cause , est-ce que vous pouvez m'aider?
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    On n'a pas que ça à faire, de corriger ton programme, donc fais un effort:
    - poste juste la partie du code intéressante
    - poste le nom de l'exception, éventuellement sa "stacktrace" ainsi que le code se situant là où elle a été levée.

  3. #3
    Débutant   Avatar de t.n.b.g
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 237
    Points : 99
    Points
    99
    Par défaut
    d'accord CyberChouan dèsolé pour le derangement

    class FileTransporterClient:
    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
     
    package appli;
     
    import params.Messages;
    import vue.InterfaceClient;
     
    /**
     * Cree une fenetre client de FileTransporter
     * @author Arnaud Leymet
     * @author Vincent Nonn
     */
    public class FileTransporterClient {
     
        /**
         * Fonction principale
         * @param args      Arguments passes par la console : non pris en compte
         */
    	public static void main(String[] args) {
    		// Message d'accueil
    		System.out.println(Messages.get("01"));
    		// Creation de la fenetre Client
    		InterfaceClient interf = new InterfaceClient(); 
    	}
    }
    class Messages:
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    package params;
     
    import java.util.MissingResourceException;
    import java.util.ResourceBundle;
     
    import vue.MessageErreur;
     
    /**
     * Cette classe comprend les 2 methodes de lecture de texte dans les fichiers de langues
     * @author Arnaud Leymet
     * @author Vincent Nonn
     */
    public class Messages {
     
    	private static final String BUNDLE_NAME = "lang.lang_"+ConfigParams.read("language");//$NON-NLS-1$
    	private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
     
    	/**
             * Renvoit le texte correspondant a l'identifiant dans le fichier de langue courant
             * @param key Identifiant du texte a chercher dans le fichier de langue courant
             * @return Texte correspondant a l'identifiant dans le fichier de langue courant
             */
    	public static String get(String key) {
    		try {
    			String msg = RESOURCE_BUNDLE.getString(key);
    			// Remplacement des vraiables internes
    			msg = msg.replaceAll("#dev1", VarInternes.read("dev1"));
    			msg = msg.replaceAll("#dev2", VarInternes.read("dev2"));
    			msg = msg.replaceAll("#version", VarInternes.read("version"));
    			msg = msg.replaceAll("#soft", VarInternes.read("soft"));
    			return msg;
    		} catch (MissingResourceException e) {
    			MessageErreur.show("Missing Ressource Bundle !", "Missing Ressource");
    			return '!' + key + '!';
    		}
    	}
     
    	/**
             * Renvoit le texte correspondant a l'identifiant dans le fichier de langue 'lang'
             * @param lang Chaine de caracteres correspondant a un fichier de langue specifique
             * @param key Identifiant du texte a chercher dans le fichier de langue 'lang'
             * @return Texte correspondant a l'identifiant dans le fichier de langue 'lang'
             */
    	public static String get(String lang, String key) {
    		final String OTHER_BUNDLE_NAME = "lang.lang_"+lang;
    		final ResourceBundle OTHER_RESOURCE_BUNDLE = ResourceBundle.getBundle(OTHER_BUNDLE_NAME);
    		try {
    			return OTHER_RESOURCE_BUNDLE.getString(key);
    		} catch (MissingResourceException e) {
    			MessageErreur.show("Missing Ressource Bundle !", "Ressource manquante");
    			return '!' + key + '!';
    		}
    	}
    }
    class ConfigParams

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
     
    package params;
     
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.Vector;
     
    import modele.OperationsFichier;
    import vue.MessageErreur;
     
    /**
     * Cette classe regroupe l'ensemble des methodes de lecture / ecriture des parametres du fichier 'params.ini'
     * @author Arnaud Leymet
     * @author Vincent Nonn
     */
    public class ConfigParams {
     
        /**
         * Lit l'information correspondant a une variable dans le fichier de config "params.ini"
         * @param param Nom du parametre a chercher dans le fichier de configuration
         * @return Valeur prise par le parametre dans le fichier de configuration
         */
    	public static String read(String param){
    		String ret = null;
    		File fichier = new File("params.ini");
    	    BufferedReader lecture = null;
    	    String ligne = null;
     
    	    try{ lecture = new BufferedReader(new FileReader(fichier)); }
    	    catch(FileNotFoundException e){
    		    String msg1, msg2;
    		    msg1 = Messages.get("ConfigParams.0");
    		    msg1 = msg1.replaceFirst("%s", fichier.toString());
    		    msg2 = Messages.get("ConfigParams.1");
    		    msg2 = msg2.replaceFirst("%s", fichier.getName());
    	    	System.out.println(msg1);
    	    	MessageErreur.show(msg2);
    	    }
    	    try {
    			while ((ligne = lecture.readLine()) != null)
    				if(ligne.startsWith(param)){
    					ret = ligne.substring(param.length()+1);
    				}
    		} catch (IOException e) {
    			MessageErreur.show(""+e, Messages.get("err.1"));
    		}
    	    try { lecture.close(); }
    	    catch (IOException e) {
    			MessageErreur.show(""+e, Messages.get("err.1"));
    		}
    		return ret;
    	}
     
    	/**
             * Retourne le vecteur comprenant tous les fichiers de langues disponibles dans le repertoire "params"
             * @return Vecteur comprenant tous les fichiers de langues disponibles dans le repertoire "params"
             */
    	public static Vector getLanguages(){
    		Vector v = new Vector();
    		File[] tab = OperationsFichier.getListeFichiers(new File("lang"+File.separator));
    		if(tab==null) MessageErreur.show("No languages found !");
    		for(int i=0; i<tab.length; i++){
    			if(tab[i].toString().startsWith("lang"+File.separator+"lang_")){
    				String lang = tab[i].toString();
    				lang = lang.substring(10,12);
    				v.add(lang+" - "+Messages.get(lang, "00"));
    			}
    		}
    		return v;
    	}
     
    	/**
             * Sauvegarde l'ensemble des parametres de l'application dans le fichier de configuration
             * @param s Tableau de valeurs des parametres a enregistrer
             */
    	public static void saveParams(String[] s){
    		File fichier = new File("params.ini");
    		BufferedWriter ecriture = null;
     
    		// Sauvegarde des anciens parametres en memoire
    		String[] save = new String[9];
    		save[0] = ConfigParams.read("language"); 
    		save[1] = ConfigParams.read("serverport"); 
    		save[2] = ConfigParams.read("shared"); 
    		save[3] = ConfigParams.read("host"); 
    		save[4] = ConfigParams.read("clientport"); 
    		save[5] = ConfigParams.read("incoming"); 
    		save[6] = ConfigParams.read("buffer"); 
    		save[7] = ConfigParams.read("securesend"); 
    		save[8] = ConfigParams.read("unsecuresend_delay"); 
     
    		// Verification de prise en compte des modifications
    		for(int i=0; i<9; i++)
    			if(s[i]==null)
    				s[i] = save[i];
     
    		// Ecriture dans le fichier de config
    	    try {
    			ecriture = new BufferedWriter(new FileWriter(fichier));
    		} catch (IOException e) {
    			MessageErreur.show(""+e, Messages.get("err.1"));
    		}
    	    try {
    			ecriture.write("[FileTransporter configuration file]");
    			ecriture.newLine();
    			ecriture.newLine();
    			ecriture.write("[general]");
    			ecriture.newLine();
    			ecriture.write("language="+s[0]);
    			ecriture.newLine();
    			ecriture.write("buffer="+s[6]);
    			ecriture.newLine();
    			ecriture.write("securesend="+s[7]);
    			ecriture.newLine();
    			ecriture.write("unsecuresend_delay="+s[8]);
    			ecriture.newLine();
    			ecriture.newLine();
    			ecriture.write("[server]");
    			ecriture.newLine();
    			ecriture.write("serverport="+s[1]);
    			ecriture.newLine();
    			ecriture.write("shared="+s[2]+File.separator);
    			ecriture.newLine();
    			ecriture.newLine();
    			ecriture.write("[client]");
    			ecriture.newLine();
    			ecriture.write("host="+s[3]);
    			ecriture.newLine();
    			ecriture.write("clientport="+s[4]);
    			ecriture.newLine();
    			ecriture.write("incoming="+s[5]+File.separator);
    			ecriture.newLine();
    		} catch (IOException e) {
    			MessageErreur.show(""+e, Messages.get("err.1"));
    		}
    	    try { ecriture.close(); }
    	    catch (IOException e) {
    			MessageErreur.show(""+e, Messages.get("err.1"));
    		}
    	}
    }
    le resultat de compilation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Exception in thread "main" java.lang.ExceptionInInitializerError
    	at appli.FileTransporterClient.main(FileTransporterClient.java:19)
    Caused by: java.lang.NullPointerException
    	at params.Messages.get(Messages.java:25)
    	at params.ConfigParams.read(ConfigParams.java:36)
    	at params.Messages.<clinit>(Messages.java:15)
    	... 1 more

  4. #4
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    En cas de NullPointer, un réflexe s'impose: utiliser le debuggueur d'Eclipse.

    Tu tentes visiblement d'invoquer une méthode sur un objet non initialisé (null).

    Es-tu sûr que la méthode "String msg = RESOURCE_BUNDLE.getString(key);" lève bien une exception si "key" n'est pas trouvée? Est-ce que tu ne te retrouves pas plutôt avec "msg = null;" ce qui expliquerait ton problème.

  5. #5
    Débutant   Avatar de t.n.b.g
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 237
    Points : 99
    Points
    99
    Par défaut
    normalement elle leve une exeption s'il ne trouve pas key

    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 static String get(String key) {
    		try {
    			String msg = RESOURCE_BUNDLE.getString(key);
    			// Remplacement des vraiables internes
    			msg = msg.replaceAll("#dev1", VarInternes.read("dev1"));
    			msg = msg.replaceAll("#dev2", VarInternes.read("dev2"));
    			msg = msg.replaceAll("#version", VarInternes.read("version"));
    			msg = msg.replaceAll("#soft", VarInternes.read("soft"));
    			return msg;
    		} catch (MissingResourceException e) {
    			MessageErreur.show("Missing Ressource Bundle !", "Missing Ressource");
    			return '!' + key + '!';
    		}
    	}

  6. #6
    Débutant   Avatar de t.n.b.g
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 237
    Points : 99
    Points
    99
    Par défaut
    j'ai debogguer le programme avec eclipse et ca donné ca:
    Fichiers attachés Fichiers attachés

  7. #7
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 037
    Points
    17 037
    Par défaut
    D'après ton image ça donne simplement le même résultat, c'est ce que tu veux nous montrer ?
    Si oui, c'est normal... le debugger sert à faire du pas à pas, une fois qu'on à placé au moins un point d'arrêt.

  8. #8
    Débutant   Avatar de t.n.b.g
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 237
    Points : 99
    Points
    99
    Par défaut
    merci pour tout le monde pour leur aides

    en fait la faute et loin d'etre dans le code , le fait que je travaille chaque fois sur un poste different ce qui m'oblige a transporter le projet ,et en l'important dans eclipse il se voit que j'importe pas les fichier.class, je sais pas exactement comment ca c'est passer mais maintenant ca marche

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

Discussions similaires

  1. execution d'un programme java
    Par new_wave dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 09/03/2008, 18h28
  2. Probleme execution d'un programme java
    Par arnaud036 dans le forum Langage
    Réponses: 4
    Dernier message: 30/08/2007, 11h06
  3. Réponses: 1
    Dernier message: 10/11/2006, 11h04
  4. Réponses: 9
    Dernier message: 03/11/2005, 14h18
  5. [debutant] execution d'un programme java sous DOS
    Par rika dans le forum Langage
    Réponses: 13
    Dernier message: 26/10/2005, 18h27

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