Erreur de compilation Java "cannot find symbol" sous ubuntu 9.04

Erreur de compilation Java "cannot find symbol" sous ubuntu 9.04 - Java - Programmation

Marsh Posté le 06-12-2009 à 17:49:09    

Bonjour à tous,
 
J'en appelle à votre aide. J'ai fait un petit logiciel en java de gestion des pièces automobiles qui est constitué de 6 classes (héritage simple):
-une classe abstraite Piece (classe mère);
-Deux classes qui sont une extension de la classe Piece:
*PieceDeBase;
*PieceComposite (classe abstraite);
-Deux classes qui sont une extension de la classe PieceComposite:
*PieceCompositeEnKit;
*PieceAssemblee;
-Une classe MainPiece qui est une application de toutes ces 5 classes.
 
Les 6 classes sont dans le meme répertoire Pieces.
 
Lorsque je compile la super classe Piece, tout va bien, j'ai aucune erreur. Par contre, lorsque je compile les sous classes, j'ai une erreur du genre:
 

PieceDeBase.java:7: cannot find symbol
symbol: class Piece
public class PieceDeBase extends Piece
^
PieceDeBase.java:37: cannot find symbol
symbol : variable super
location: class Prog.Pieces.PieceDeBase
{return super.toString()+"-de base-";}
 
 

 
 
Ce sont les seules erreurs que j'ai pour toutes mes classes.
 
Voici ma classe Piece:  
 
 
package Prog.Pieces;
 
import java.util.*;
import java.io.*;
 
public abstract class Piece
{
//Attributs----------------------------------------------------------------------------------
 
 protected String nom;
 protected String referenceDeBase;
 
//Constructeurs------------------------------------------------------------------------------
 
Piece()
  {nom="inconnu"; referenceDeBase="000000";}
 
Piece(String n, String r)
  {nom=n; referenceDeBase=r;}
 
//Accesseurs---------------------------------------------------------------------------------
public String getNom() {return nom;}
public void setNom(String n) {nom=n;}
 
public String getReferenceDeBase() {return referenceDeBase;}
public void setReferenceDeBase(String r) {referenceDeBase=r;}
 
//Autres methodes----------------------------------------------------------------------------
 
public String toString()
{return nom+" "+getReferenceDeBase();}
 
abstract public float prix();
 
abstract public float dureeGarantie();
 
abstract public float dureeFabrication();
 
abstract public String prefixe();
 
public String referenceDeBase() {return referenceDeBase;}
 
public void affiche()
  {
   System.out.println("Nom : "+getNom()+"\n"+
                      "Reference : "+referenceDeBase()+"\n"+
                      "Prix : "+prix()+"euro(s)\n"+
                      "Garantie : "+dureeGarantie()+"mois\n"+
                      "Duree de fabrication : "+dureeFabrication()+"jour(s)\n" );
  }
 
//Partie protegee----------------------------------------------------------------------------
 
protected String afficheCommeComposants(int decalage)
  {
   String Decale="";
   for (int i=0; i<decalage; i++)
   Decale +="    ";
   return Decale+nom+" - "+referenceDeBase()+"\n";
  }
 
}
 

 
Et voici ma classe PieceDeBase (pour ne vous citer que celles la):  
 
 
package Prog.Pieces;
 
import java.util.*;
import java.io.*;
 
public class PieceDeBase extends Piece
{
//Attributs-----------------------------------------------------------------
 
 private float prix;
 private float dureeGarantie;
 private float dureeFabrication;
 
//Constructeurs-------------------------------------------------------------
 
 PieceDeBase()
 {prix=0; dureeGarantie=0; dureeFabrication=0;}
 
 PieceDeBase(String n, String r, float p, float dg, float df)
  {super(n,r); prix=p; dureeGarantie=dg; dureeFabrication=df;}
 
//Accesseurs----------------------------------------------------------------
 
 public float getPrix() {return prix;}
 public void setPrix(float p) {prix=p;}
 
 public float getDureeGarantie() {return dureeGarantie;}
 public void setDureeGarantie(float dg) {dureeGarantie=dg;}
 
 public float getDureeFabrication() {return dureeFabrication;}
 public void setDureeFabrication(float df) {dureeFabrication=df;}
 
//Autres methodes-----------------------------------------------------------
 
 public String toString()
   {return super.toString()+"-de base-";}
 
 public float prix() {return prix;}
 
 public float dureeGarantie() {return dureeGarantie;}
 
 public float dureeFabrication() {return dureeFabrication;}
 
 public String prefixe() {return "00"+super.reference();}
 
}
 

 
 
Est-ce une erreur de mon classpath ou de mon code?
Je comprends vraiment rien, mon code me semblait juste pourtant.
Si vous pouviez m'aider, je vous en serais très reconnaissante.
Cordialement.

Reply

Marsh Posté le 06-12-2009 à 17:49:09   

Reply

Marsh Posté le 09-12-2009 à 00:29:09    

Si tu compiles en ligne de commande, tu dois ajouter le répertoire où se trouve ta classe "Piece" au classpath. Si c'est le répertoire courant, c'est "-cp ."

Reply

Marsh Posté le 09-12-2009 à 10:02:39    

merci pour ta reponse mais c'est pas cela, j'ai deja essaye. J'ai regle mon pb en compilant ma super classe et mes sous classes en une seule commande : javac SuperClass.java SousClasse1.java
 

Reply

Marsh Posté le 09-12-2009 à 10:02:39    

merci pour ta reponse mais c'est pas cela, j'ai deja essaye. J'ai regle mon pb en compilant ma super classe et mes sous classes en une seule commande : javac SuperClass.java SousClasse1.java
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed