OVH Cloud OVH Cloud

Compilation : constitution d'un fichier "MaClasse$1.class" !!?!

4 réponses
Avatar
Debug
Bonsoir !

Je programme en ce moment un petit projet dans un seul fichier source Java :
"MaClasse.java".
Lors de la compilation, celui-ci est donc compilé en "MaClasse.class".

Or, depuis hier, sans que je comprenne pourquoi, le compilateur 'javac' (je
compile en ligne de commande) me crée DEUX fichiers : "MaClasse.class" et
"MaClasse$1.class" !!! D'où vient ce "$1" ??

Pire : lorsque je lance mon applet sous Internet Exlorer, ce nouveau fichier
"MaClasse$1.class" est demandé sinon l'applet ne veut pas se lancer !!?!

Vous avez une explication ? Est-ce que ça peut venir de quelque-chose dans
la manière de rédiger le code ? C'est arrivé au fur et à mesure de la
programmation !!

Merci d'avance !

Debug ;-)

4 réponses

Avatar
Mat Free
dans <40f9a8eb$0$314$
Bonsoir !

Je programme en ce moment un petit projet dans un seul fichier source Java :
"MaClasse.java".
Lors de la compilation, celui-ci est donc compilé en "MaClasse.class".

Or, depuis hier, sans que je comprenne pourquoi, le compilateur 'javac' (je
compile en ligne de commande) me crée DEUX fichiers : "MaClasse.class" et
"MaClasse$1.class" !!! D'où vient ce "$1" ??

Pire : lorsque je lance mon applet sous Internet Exlorer, ce nouveau fichier
"MaClasse$1.class" est demandé sinon l'applet ne veut pas se lancer !!?!

Vous avez une explication ? Est-ce que ça peut venir de quelque-chose dans
la manière de rédiger le code ? C'est arrivé au fur et à mesure de la
programmation !!


A priori, c'est que tu as une class interne anonyme dans la
classe MaClasse.

Surement quelquechose du genre :

class MaFenetre extends JFrame
{
....
addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{ ... }
});
....
}

--
Mat

Avatar
Thomas Cornet
Est-ce que par le plus pur des hasard tu utilises des classe anonymes
dans ton applet ? L'exemple le plus courant est la gestion d'événements
quand tu rajoutes des listeners. Pour chaque classe anonyme que tu
utilises, le compilo te crée un ficher '.class' supplémentaire, histoire
sans doute de s'y retrouver à l'exécution.



Bonsoir !

Je programme en ce moment un petit projet dans un seul fichier source Java :
"MaClasse.java".
Lors de la compilation, celui-ci est donc compilé en "MaClasse.class".

Or, depuis hier, sans que je comprenne pourquoi, le compilateur 'javac' (je
compile en ligne de commande) me crée DEUX fichiers : "MaClasse.class" et
"MaClasse$1.class" !!! D'où vient ce "$1" ??

Pire : lorsque je lance mon applet sous Internet Exlorer, ce nouveau fichier
"MaClasse$1.class" est demandé sinon l'applet ne veut pas se lancer !!?!

Vous avez une explication ? Est-ce que ça peut venir de quelque-chose dans
la manière de rédiger le code ? C'est arrivé au fur et à mesure de la
programmation !!

Merci d'avance !

Debug ;-)


Avatar
Debug
C'était bien ça le problème, merci beaucoup !! :))

A++

Debug ;)

"Mat Free" <mat.freeNO_SPAM+ a écrit dans le message de
news:
dans <40f9a8eb$0$314$
Bonsoir !

Je programme en ce moment un petit projet dans un seul fichier source
Java :


"MaClasse.java".
Lors de la compilation, celui-ci est donc compilé en "MaClasse.class".

Or, depuis hier, sans que je comprenne pourquoi, le compilateur 'javac'
(je


compile en ligne de commande) me crée DEUX fichiers : "MaClasse.class"
et


"MaClasse$1.class" !!! D'où vient ce "$1" ??

Pire : lorsque je lance mon applet sous Internet Exlorer, ce nouveau
fichier


"MaClasse$1.class" est demandé sinon l'applet ne veut pas se lancer !!?!

Vous avez une explication ? Est-ce que ça peut venir de quelque-chose
dans


la manière de rédiger le code ? C'est arrivé au fur et à mesure de la
programmation !!


A priori, c'est que tu as une class interne anonyme dans la
classe MaClasse.

Surement quelquechose du genre :

class MaFenetre extends JFrame
{
....
addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{ ... }
});
....
}

--
Mat




Avatar
Debug
C'était bien ça le problème, merci beaucoup !! :))

A++

Debug ;)

"Thomas Cornet" a écrit dans le message de
news:piy0hayf14jg.rsnx32lm581e$

Est-ce que par le plus pur des hasard tu utilises des classe anonymes
dans ton applet ? L'exemple le plus courant est la gestion d'événements
quand tu rajoutes des listeners. Pour chaque classe anonyme que tu
utilises, le compilo te crée un ficher '.class' supplémentaire, histoire
sans doute de s'y retrouver à l'exécution.



Bonsoir !

Je programme en ce moment un petit projet dans un seul fichier source
Java :


"MaClasse.java".
Lors de la compilation, celui-ci est donc compilé en "MaClasse.class".

Or, depuis hier, sans que je comprenne pourquoi, le compilateur 'javac'
(je


compile en ligne de commande) me crée DEUX fichiers : "MaClasse.class"
et


"MaClasse$1.class" !!! D'où vient ce "$1" ??

Pire : lorsque je lance mon applet sous Internet Exlorer, ce nouveau
fichier


"MaClasse$1.class" est demandé sinon l'applet ne veut pas se lancer !!?!

Vous avez une explication ? Est-ce que ça peut venir de quelque-chose
dans


la manière de rédiger le code ? C'est arrivé au fur et à mesure de la
programmation !!

Merci d'avance !

Debug ;-)