Se connecter avec
S'enregistrer | Connectez-vous

les packages la compilation et java

Dernière réponse : dans Programmation

Salut, je suis en train d'apprendre a programmer en java et là j'attaque le concept de package.
J'ai defini deux classes :
-> Date

  1. //Classe date
  2.  
  3. public class Date extends Object
  4. {
  5. private int jour;
  6. private int mois;
  7. private int annee;
  8. }


Ou il n'y pas de package et que je compile avec un "javac Date.java"

-> Employe

  1. //Definition d'une classe
  2.  
  3. package com.exo;
  4.  
  5.  
  6. public class Employe extends Object
  7. {
  8. private String prenom;
  9. private String nomFamille;
  10. private Date dateNaissance;
  11. private Date dateEmbauche;
  12. private static int nombre;
  13. }


Ou je me sers de la classe Date et ou je cree un package, ici je compile avec "javac -d . Employe.java"

et le fichier d'appel ou je fais l'import de ma classe Employe

  1. import javax.swing.*;
  2.  
  3. import com.exo.Employe;
  4.  
  5. public class TestEmploye
  6. {
  7.  
  8. public static void main(String args[])
  9. {


etc....

Quand je compile la classe date tout va bien et quand je cherche a compiler la classe Employe il me dit qu'il ne connait pas la classe Date, "Cannot resolve symbol " sont les termes du compilateurs si quelqu'un pouvait m'expliquer ca serait cool, j'aimerais bien pouvoir me servir des packages

Merci D'avance

A+

Ganjah

Autres pages sur : packages compilation java

Lassé par la pub ? Créez un compte

Il me semble bien que l'on ne peut pas avoir deux classes publiques dans un meme fichier Java.

Par contre ce qui est bizarre ce que lorsque j'enleve tous ce qui a un rappoert avec les packages (ex :
package com.exo dans employee) et que je compile separement avec des javac nom du fichier tout se passe et le programme marche bien (sans faire aucun import de la classe date dans la classe employee). Vous auriez d'autre idées ??

Premierement, il existe deja une classe qui s'appelle Date dans le package java.util (il me semble), donc pour eviter les mauvaises surprises tu devrais renommer ta classe Date en MaDate ou quelque chose dans ce style.
Ensuite, comme te l'a dit Thierry Chatel, il faut que tu specifies a ta classe employee ou trouver la classe Date.
Mais je crois qu'il faut qu elle appartienne aussi a un package pour que tu puisses lui specifier le chemin avec un import nom_du_package.Date;
Normalement, ton arborescence doit avoir cette tete :
rep_de_travail
package_de_date com TestEmploye.java
Date exo
Employe

Bon j'espere que j'ai ete clair.
Lassé par la pub ? Créez un compte