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

Langage Java Discussion :

Problème dans une Classe


Sujet :

Langage Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Problème dans une Classe
    Bonjour,

    j'utilise des classes Java lors de mes TPs et cela marche très bien dans les salles de cours. Cependant j'ai voulu récuppérer les deux fichiers classes utilisées afin de pouvoir faire les TP chez moi. Cependant pour un des fichier il y a une erreur (celle en gras).
    Si vous voyez quelquechose que je puisse faire pour que cela marche, je vous en serait très reconnaissant.

    Merci


    Voici le code d'une des classes :

    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
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
     import java.io.*;
    
    public class Lecture
    {
    
        public Lecture()
        {
        }
    
        public static InputStream ouvrir(String s)
        {
            DataInputStream datainputstream;
            try
            {
                datainputstream = new DataInputStream(new FileInputStream(s));
            }
            catch(IOException ioexception)
            {
                datainputstream = null;
            }
            return datainputstream;
        }
    
        public static boolean finFichier(InputStream inputstream)
        {
            return inputstream != System.in && inputstream.available() == 0;
            IOException ioexception;
            ioexception;
            System.out.println("pb test finFichier");
            System.exit(1);
            return true;
        }
    
        public static void fermer(InputStream inputstream)
        {
            try
            {
                inputstream.close();
            }
            catch(IOException ioexception)
            {
                System.out.println("pb fermeture fichier");
            }
        }
    
        public static char lireChar(InputStream inputstream)
        {
            char c = ' ';
            try
            {
                int i = inputstream.read();
                if(i == -1)
                {
                    System.out.println("lecture apr\350s fin de fichier");
                    System.exit(2);
                }
                c = (char)i;
            }
            catch(IOException ioexception)
            {
                System.out.println(ioexception.getMessage());
                System.out.println("Erreur fatale");
                System.exit(3);
            }
            return c;
        }
    
        public static char lireChar()
        {
            return lireChar(System.in);
        }
    
        public static String lireString(InputStream inputstream)
        {
            String s = "";
            for(char c = lireChar(inputstream); c != '\n'; c = finFichier(inputstream) ? '\n' : lireChar(inputstream))
            {
                if(c != '\r')
                {
                    s = (new StringBuilder()).append(s).append(c).toString();
                }
            }
    
            return s;
        }
    
        public static String lireString()
        {
            return lireString(System.in);
        }
    
        public static int lireInt(InputStream inputstream)
            throws NumberFormatException
        {
            return Integer.valueOf(lireUnite(inputstream, false)).intValue();
        }
    
        public static int lireInt()
            throws NumberFormatException
        {
            return lireInt(System.in);
        }
    
        public static int lireIntln(InputStream inputstream)
            throws NumberFormatException
        {
            return Integer.valueOf(lireUnite(inputstream, true)).intValue();
        }
    
        public static int lireIntln()
            throws NumberFormatException
        {
            return lireIntln(System.in);
        }
    
        public static double lireDouble(InputStream inputstream)
            throws NumberFormatException
        {
            return Double.valueOf(lireUnite(inputstream, false)).doubleValue();
        }
    
        public static double lireDouble()
            throws NumberFormatException
        {
            return lireDouble(System.in);
        }
    
        public static double lireDoubleln(InputStream inputstream)
            throws NumberFormatException
        {
            return Double.valueOf(lireUnite(inputstream, true)).doubleValue();
        }
    
        public static double lireDoubleln()
            throws NumberFormatException
        {
            return lireDoubleln(System.in);
        }
    
        public static String lireUnite(InputStream inputstream, boolean flag)
        {
            String s = "";
            char c;
            for(c = lireChar(inputstream); Character.isWhitespace(c); c = lireChar(inputstream)) { }
            for(; !Character.isWhitespace(c); c = finFichier(inputstream) ? '\n' : lireChar(inputstream))
            {
                s = (new StringBuilder()).append(s).append(c).toString();
            }
    
            if(c == '\r')
            {
                c = lireChar(inputstream);
            }
            if(flag)
            {
                for(; !finFichier(inputstream) && c != '\n'; c = lireChar(inputstream)) { }
            }
            return s;
        }
    
        public static String lireUnite(boolean flag)
        {
            return lireUnite(System.in, flag);
        }
    }

  2. #2
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Euh, là tu as récupéré un .class que tu as décompilé, non?
    Il vaut mieux prendre les .java

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    oui c''est bien ca, j'ai décompilé le "*.class" et j'ai obtenu ceci.

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    la décimpilation peut être approximative, en général tu décompiles pour comprendre ce qu'il se passe dans une classe, pas pour recoder par dessus
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    aille ok...

    ben j'ai un gros problème alors, je ne sais pas comment définir dans "Xemacs" l'endroit où il doit chercher les fichiers class pour que les fonctions soient reconnues...

  6. #6
    Membre éprouvé Avatar de leminipouce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2004
    Messages : 754
    Points : 1 253
    Points
    1 253
    Par défaut
    euh...
    J'ai du mal à comprendre ta dernière phrase... et le rapport avec le début du post.

    EDIT: Tu parles du CLASSPATH pour la compilation là ?
    Si , et la ont échoué mais pas nous, pensez à dire et cliquez sur . Merci !

    Ici, c'est un forum, pas une foire. Il y a de respectables règles... à respecter !

  7. #7
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public static boolean finFichier(InputStream inputstream)
        {
            return inputstream != System.in && inputstream.available() == 0;
            IOException ioexception;
            ioexception;
            System.out.println("pb test finFichier");
            System.exit(1);
            return true;
        }
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public static boolean finFichier(InputStream inputstream)
        {
            try{
                 return inputstream!=System.in&&inputsrtream.available()==0;
            }catch(IOException ioexception){
                 System.out.println("pb test finFichier");
                 System.exit(1);
            }
            return true;
        }
    Franchement, si tu n'es pas capable de corriger cette erreur, c'est qu'il y a un gros soucis. Je te conseilles vivement de réviser les bases du langage et plus particulièrement la gestion des exceptions. C'est pas en décompilant les classes et en les remodifiant à ta sauce que tu arrivers à progresser...

  8. #8
    Membre éprouvé Avatar de leminipouce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2004
    Messages : 754
    Points : 1 253
    Points
    1 253
    Par défaut
    Perso, pour gérer mes exceptions, dans pareil cas, et avec le code de iohack (PS : ton clavier a refusé une accolade devant le catch), je mettrai un return false; à la place du System.exit(1); C'est moins brutal, ça te permet de faire ce que tu veux derrière (e.g. afficher un message à ton utilisateur !) et ça t'affranchit du return true; final inutile. (tu ni passes jamais, mais pour des raisons de sécurité de ton code, le compilo t'oblige à en mettre un...quoique, dans ce cas, j'en suis pas sûr, car je ne sais pas comment il gère le System.exit())

    PS2 : @iohack t'y vas quand même un petit peu fort là. C'est un débutant, même si il ne l'a pas précisé dans le titre de son sujet...
    Si , et la ont échoué mais pas nous, pensez à dire et cliquez sur . Merci !

    Ici, c'est un forum, pas une foire. Il y a de respectables règles... à respecter !

  9. #9
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Ca y est j'ai corrigé la faute de frappe.
    Sinon, je proposais juste un code qui fonctionne ( compilation+execution ), je suis en tout point daccord qu'il n'est pas propre.
    Personnellement, pour une si petite méthode, j'aurais balancé l'exception à un niveau au dessus en me contentant de faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public static boolean finFichier(InputStream inputstream) throws IOException{
            return inputstream!=System.in&&inputsrtream.available()==0;
    }
    Je pense qu'il faudrait mieux gérer une seule exception pour l'ensemble des instructions :
    -ouvrir fichier
    -lire fichier
    -fermer fichier

    PS je ne pense pas avoir été trop dur pour avoir fait moi-même l'expérience de décompiler une classe qu'un prof pas très malin nous avait filé à titre d'exemple : j'ai modifié le nom des variables, mis quelques commentaire et basta. Résultat 18/20 sans avoir compris les subtilités que l'exercice devait nous apprendre...

Discussions similaires

  1. Réponses: 9
    Dernier message: 19/05/2007, 15h28
  2. Réponses: 1
    Dernier message: 17/04/2007, 22h07
  3. Réponses: 8
    Dernier message: 12/04/2007, 11h32
  4. Problème Access Violation dans une classe
    Par randriano dans le forum C++Builder
    Réponses: 1
    Dernier message: 11/04/2007, 18h49
  5. problème d'accès dans une classe dérivée!
    Par chrono23 dans le forum C++
    Réponses: 47
    Dernier message: 10/10/2006, 11h22

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