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 :

[Débutant] A quoi servent xxxx$1.class et xxxx$2.class


Sujet :

Eclipse Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 29
    Points : 30
    Points
    30
    Par défaut [Débutant] A quoi servent xxxx$1.class et xxxx$2.class
    Bonjour,

    Je débute avec Eclipse 3.0.2 et je tente de développer en guise d'apprentissage un projet baptisé TT (pour Tournoi de Tennis, petits curieux !). La classe principale s'appelle donc mainTT et j'utilise Visual Editor pour générer la fenêtre qui va bien. VE (je suppose que c'est VE, car je n'ai pas ce problème quand je me paluche des classes à la mimine...) me génére donc un fichier mainTT.java et un fichier mainTT.class mais aussi deux autres fichiers nommés mainTT$1.class et mainTT$2.class. Si je les laisse, tout baigne, et si je les efface, j'ai une erreur : java.lang.NoClassDefFoundError: mainTT$1

    J'avais cru comprendre que les fichiers .java donnaient par la compilation des .class et que ca suffisait pour que tout fonctionne. Et j'ai subordoré de prime abord que ces fichiers mainTT$x.class étaient de simples sauvegardes (par analogie avec mon Delphi et mon C++Builder). Mais apparemment, je n'ai pas tout compris.

    Si une bonne âme veut bien m'éclairer, je graverais à jamais son nom dans le marbre des octets.....
    Sunchai

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Il s'agit de classes annonymes... Java permet de créer des classes dans le corps d'une méthode, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	public void method() {
    		JButton button = new JButton("Ok");
    		button.addActionListener(new ActionListener() {
     
    			public void actionPerformed(ActionEvent pE) {
    				System.out.println("Click sur Ok !");				
    			}
     
    		});
    	}
    Lorsque cette méthode est compilé, une classe annonyme qui implémente ActionListener est créée, et son byte-code est placé dans un fichier xxxx$1.class, etc...

    Donc je suppose que VE doit te générer des classes annonymes...

    a++

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 29
    Points : 30
    Points
    30
    Par défaut C'est logique, mais est-ce indispensable ?
    C'est bien comme ca que ca se passe avec VE. Tout est donc logique, et j'en conclus que pour le dépoiement de mon appli (que je viens de repousser au 20 Févier 2035, vers 17H16 ), il faudra que je mette ces fichiers dans le chemin de l'application...
    Je vais voir dans mon absence de documentation sur VE si on peut éviter ca...

    En tout cas, merci adiGuba pour ta réponse.

    Sunchai

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

Discussions similaires

  1. a quoi servent les class ?
    Par diice dans le forum Langage
    Réponses: 9
    Dernier message: 04/01/2012, 17h16
  2. Réponses: 2
    Dernier message: 13/05/2008, 11h02
  3. Réponses: 6
    Dernier message: 10/03/2008, 22h27
  4. Réponses: 2
    Dernier message: 02/02/2008, 08h37
  5. Réponses: 2
    Dernier message: 26/12/2007, 14h46

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