OVH Cloud OVH Cloud

essai swing bad class file

8 réponses
Avatar
yvon.thoravalNO-SPAM
j'essaie l'ex pp 150-152 du "les Cahiers du programmeur Java I" et j'ai
un pb d'import :

nord-2-81-57-96-20:~/bin/Java/CahierJava1/swing/Adresse> ls
<1
SaisieAdresse.java com
nord-2-81-57-96-20:~/bin/Java/CahierJava1/swing/Adresse> javac *va
<1
SaisieAdresse.java:2: cannot access com.toto.PanneauAdresse
bad class file: ./com/toto/PanneauAdresse.class
class file contains wrong class: PanneauAdresse
Please remove or make sure it appears in the correct subdirectory of the
classpath.
import com.toto.PanneauAdresse ;
^
1 error

l'en-tête de SaisieAdresse :

import javax.swing.*;
import com.toto.PanneauAdresse ;

class SaisieCAdresse
{...}

l'en-tête de PanneauAdresse :

import javax.swing.*;
import java.awt.*;
public class PanneauAdresse extends JPanel
{...}

je suis ds le répertoire /path/to/swing
lequel contient :
SaisieAdresse.java
com
>toto
PanneauAdresse.class
PanneauAdresse.java


et j'ai cette erreur suite à la commande :

javac *.java
ou
javac -classpath . *.java

je ne vois pas ce qui bloque...
--
yt

8 réponses

Avatar
jerome moliere
Yvon Thoraval wrote:

j'essaie l'ex pp 150-152 du "les Cahiers du programmeur Java I" et j'ai
un pb d'import :

nord-2-81-57-96-20:~/bin/Java/CahierJava1/swing/Adresse> ls
<1
SaisieAdresse.java com
nord-2-81-57-96-20:~/bin/Java/CahierJava1/swing/Adresse> javac *va
<1
SaisieAdresse.java:2: cannot access com.toto.PanneauAdresse
bad class file: ./com/toto/PanneauAdresse.class
class file contains wrong class: PanneauAdresse
Please remove or make sure it appears in the correct subdirectory of the
classpath.
import com.toto.PanneauAdresse ;
^
1 error

l'en-tête de SaisieAdresse :

import javax.swing.*;
import com.toto.PanneauAdresse ;

class SaisieCAdresse
{...}

l'en-tête de PanneauAdresse :

import javax.swing.*;
import java.awt.*;
public class PanneauAdresse extends JPanel
{...}

je suis ds le répertoire /path/to/swing
lequel contient :
SaisieAdresse.java
com
toto
PanneauAdresse.class

PanneauAdresse.java


et j'ai cette erreur suite à la commande :

javac *.java
ou
javac -classpath . *.java

je ne vois pas ce qui bloque...


en gros t'as un probleme de package, je pense qu'il te manque
des declarations du type

package com.toto;

as tu essaye de telecharger le code source ?
mais je vais pas faire la hotline de manu (emmanuel puybaret)
a l'oeil non plus :)

courage
Jerome
PS:
n'hesites pas a le contacter par mail (via eteks.com)
--
Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003
http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean13—82212111941


Avatar
news.wanadoo.fr
Je sais pas si tu t'es plante en recopiant ou si c'est dans ton programme
mais je remarque que le fichier SaisieAdresse.java contient la classe
SaisieCAdresse, ce qui n'est pas valide.
"Yvon Thoraval" a écrit dans le message news:
1g8vvrg.3imhq28zx44gN%
j'essaie l'ex pp 150-152 du "les Cahiers du programmeur Java I" et j'ai
un pb d'import :

nord-2-81-57-96-20:~/bin/Java/CahierJava1/swing/Adresse> ls
<1
SaisieAdresse.java com
nord-2-81-57-96-20:~/bin/Java/CahierJava1/swing/Adresse> javac *va
<1
SaisieAdresse.java:2: cannot access com.toto.PanneauAdresse
bad class file: ./com/toto/PanneauAdresse.class
class file contains wrong class: PanneauAdresse
Please remove or make sure it appears in the correct subdirectory of the
classpath.
import com.toto.PanneauAdresse ;
^
1 error

l'en-tête de SaisieAdresse :

import javax.swing.*;
import com.toto.PanneauAdresse ;

class SaisieCAdresse
{...}

l'en-tête de PanneauAdresse :

import javax.swing.*;
import java.awt.*;
public class PanneauAdresse extends JPanel
{...}

je suis ds le répertoire /path/to/swing
lequel contient :
SaisieAdresse.java
com
toto
PanneauAdresse.class

PanneauAdresse.java


et j'ai cette erreur suite à la commande :

javac *.java
ou
javac -classpath . *.java

je ne vois pas ce qui bloque...
--
yt



Avatar
yvon.thoravalNO-SPAM
jerome moliere wrote:

en gros t'as un probleme de package, je pense qu'il te manque
des declarations du type

package com.toto;



ouais, ouais, merci beaucoup, j'avais trouvé entre-temps...
as tu essaye de telecharger le code source ?
oui, mais ca me gène un peu tous les "package com.eteks"...


le petit swing PanneauContact (PanneauAdresse chez moi) est ok
mis à part un pb d'accents, mes fichiers java sont en utf-8

je sais qu'il y a qqc à faire mais ne me souviens + de quoi...

--
yt

Avatar
yvon.thoravalNO-SPAM
news.wanadoo.fr wrote:

Je sais pas si tu t'es plante en recopiant ou si c'est dans ton programme
mais je remarque que le fichier SaisieAdresse.java contient la classe
SaisieCAdresse, ce qui n'est pas valide.


oui, oui, merci, il y avait AUSSI cette faute de frappe...
--
yt

Avatar
Olivier Thomann
Le Mon, 9 Feb 2004 17:44:43 +0100, (Yvon
je sais qu'il y a qqc à faire mais ne me souviens + de quoi...
Regarde du côté de l'outil native2ascii.

http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/native2ascii.html
Ça devrait te dépanner, plutôt que de taper tous tes accents en
unicode.

Sinon tu peux aussi utiliser des fichiers .properties qui te servent à
passer ton code en plusieurs langues.
http://java.sun.com/j2se/1.4.2/docs/guide/intl/index.html
--
Olivier

Avatar
Emmanuel Puybaret
Bonjour à tous,

En tant qu'auteur du Cahier Java [1], je me permets de faire les quelques
réflexions suivantes vis à vis des messages postés dans ce sujet.

oui, mais ca me gène un peu tous les "package com.eteks"...


Tu peux toujours te passer des packages en Java. Mais comme l'organisation
des dossiers sous-jacents et l'utilisation des options de javac et java
n'est pas si intuitive (bien que très logique), il vaut t'y faire le plus
rapidement possible car les packages sont incontournables aussitôt que tu
écris des applis professionnelles...

Je sais pas si tu t'es plante en recopiant ou si c'est dans ton programme
mais je remarque que le fichier SaisieAdresse.java contient la classe
SaisieCAdresse, ce qui n'est pas valide.


oui, oui, merci, il y avait AUSSI cette faute de frappe...


Si la classe SaisieCAdresse n'est pas public c'est tout à fait valide
qu'elle soit dans un fichier SaisieAdresse.java. Ca n'est pas habituel mais
ça compile en tout cas. Ce qu'il faut surtout comprendre, c'est que dans ce
cas le fichier généré sera SaisieCAdresse.class et la commande java devra
faire appel à SaisieCAdresse.

mais je vais pas faire la hotline de manu (emmanuel puybaret)
a l'oeil non plus :)
n'hesites pas a le contacter par mail (via eteks.com)


Pour toute question sur le Cahier Java [1], il y a aussi un forum prévu à
cet effet à http://www.eteks.com/services/forumcahierjava1/

Bye
--
Emmanuel PUYBARET
Email :
Web : http://www.eteks.com
Auteur du Cahier du programmeur Java [1] / Editions Eyrolles :
http://www.eteks.com/services/cahierjava1.html


Avatar
yvon.thoravalNO-SPAM
Olivier Thomann wrote:

Regarde du côté de l'outil native2ascii.
http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/native2ascii.html
Ça devrait te dépanner, plutôt que de taper tous tes accents en
unicode.

Sinon tu peux aussi utiliser des fichiers .properties qui te servent à
passer ton code en plusieurs langues.
http://java.sun.com/j2se/1.4.2/docs/guide/intl/index.html


OK, merc beaucoup, je vais regarder ces deux refs. pour l'instant ce
sont mes fichiers *.java qui sont en utf-8, j'ai résolu le pb d'accents
avec une o^tion ** MAGIQUE ** à la compil :

javac -encoding utf-8 *va

Mais bon, je dois continuer à regarder cela de près because mes bases
(PostgreSQL) sont toutes en utf-8...
--
yt

Avatar
yvon.thoravalNO-SPAM
Emmanuel Puybaret wrote:

oui, mais ca me gène un peu tous les "package com.eteks"...


Tu peux toujours te passer des packages en Java. Mais comme l'organisation
des dossiers sous-jacents et l'utilisation des options de javac et java
n'est pas si intuitive (bien que très logique), il vaut t'y faire le plus
rapidement possible car les packages sont incontournables aussitôt que tu
écris des applis professionnelles...



Oui, oui, je suis d'accord ça m'a géné because je n'avais pas pigé ce
qu'était un pkg et surtout la directive dans le header...

Je sais pas si tu t'es plante en recopiant ou si c'est dans ton programme
mais je remarque que le fichier SaisieAdresse.java contient la classe
SaisieCAdresse, ce qui n'est pas valide.


oui, oui, merci, il y avait AUSSI cette faute de frappe...


Si la classe SaisieCAdresse n'est pas public c'est tout à fait valide
qu'elle soit dans un fichier SaisieAdresse.java. Ca n'est pas habituel mais
ça compile en tout cas. Ce qu'il faut surtout comprendre, c'est que dans ce
cas le fichier généré sera SaisieCAdresse.class et la commande java devra
faire appel à SaisieCAdresse.


Oui, j'avais remarqué que ça compilait qd même...

mais je vais pas faire la hotline de manu (emmanuel puybaret)
a l'oeil non plus :)
n'hesites pas a le contacter par mail (via eteks.com)


Pour toute question sur le Cahier Java [1], il y a aussi un forum prévu à
cet effet à http://www.eteks.com/services/forumcahierjava1/


J'ai noté :) je pense, incessemment, posé une question à propos d'utf-8
(mes bases de données PostgreSQL utilisent cet encodage) mon but :
traduire deux "maquettes" en php+javascript en swing...
--
yt