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

Java Discussion :

import fichiers de sous dossiers


Sujet :

Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 231
    Par défaut import fichiers de sous dossiers
    Bonjour,

    J'ai un dossier (dossier courant)où mes sources se trouvent. Il existe un sous-dossier avec certaines classes qui ont le même nom que certaines classes dans le dossier supérieur. (c'est pour çà que je le met dans un sous-dossier).
    Par contre je dois faire des imports de ces fichiers.

    j'arrive à faire des import des fichiers qui sont dans le dossier couant de ce type là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    import generated.Root.Exploitations;
    import generated.Root.Exploitations.Mesure;
    import generated.Root.Exploitations.Mesure.Prestation;
    import generated.Root.Exploitations.Mesure.Rubrique;
    import generated.Root.Exploitations.Mesure.Rubrique.SousRubrique;
    import generated.Root.Exploitations.Mesure.Rubrique.SousRubrique.Item;
    import generated.Root.Exploitations.Mesure.Rubrique.SousRubrique.Item.Resultat;
    Le problème c'est que je dois importer les fichiers qui sont dans le sous-dossier. Mais si je laisse tout comme ca je vais faire deux fois le code ci-dessus.

    ALors comment je peux faire pour importer les fichiers qui sont dans le sous-dossier depuis un fichier qui est dans le dossier courant???

    En sachant que je ne peux modifier les noms des fichiers mais je peux modifier le package.

    Je vous remercie d'avance car a je me prends la tête

  2. #2
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    Quand deux classes ont le meme nom, tu précise laquelle tu veux en utilisant le nom complet.

    par exemple deux classes :
    org.prog.Builder
    org.prog.subpack.Builder

    pour les différencier dans tes classes tu dois ecrire :
    org.prog.Builder builder1 = new org.prog.Builder();
    org.prog.subpack.Builder builder2 = new org.prog.subpack.Builder();


    bien sur tu peux garder l'un des deux en import :
    import org.prog.Builder;

    ce qui donne :
    Builder builder1 = new Builder();
    org.prog.subpack.Builder builder2 = new org.prog.subpack.Builder();

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 231
    Par défaut
    BOnjour,

    Merci de votre réponse

    Mais cela ne résout pas mon problème . Ce sont mes fichiers qui ont le même nom d'où le même nom de classe. Normalement je devrais mettre toutes ces classes dans un même fichier mais je ne peux pas étant donner qu'ils ont le même nom.

    Cependant, je dois faire appel à ces classes que j'ai mis dans un sous-dossiers.

    Mais comment je peux faire appel à des classes qui sont dans des sous dossiers? ???

    exemple:
    dossier courant: generated
    sous-dossier: audit

    j'ai tenter audit.nom_package.nom_classe

    sans résultat

    Merci de votre aide.

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Pourquoi l'explication d'Eclesia ne te convient pas ?
    Il ne faut plus que tu utilises les imports pour les noms de classes en doublons. Son explication est pourtant très claire...
    Donne le bout de code qui ne fonctionne pas. Et pense à utiliser le terme "package" à la place de "répertoire", ce sera plus clair pour tout le monde
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    A mon avis, si tu as des classes portant le même noms à des niveaux différents de ton application, c'est que tu les as mal nommées (pas suffisamment précisément).

    Par exemple, si tu as deux type d'utilisateur gérés chacun par une classe, plutôt que d'avoir deux classes "User" dans des packages différents, il vaut mieux avoir des classes aux noms explicites comme AdminUser et StandardUser, par exemple.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 231
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    Pourquoi l'explication d'Eclesia ne te convient pas ?
    Il ne faut plus que tu utilises les imports pour les noms de classes en doublons. Son explication est pourtant très claire...
    Donne le bout de code qui ne fonctionne pas. Et pense à utiliser le terme "package" à la place de "répertoire", ce sera plus clair pour tout le monde
    BOnjour,

    Je vais relire, j ai peut etre mal compris

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 231
    Par défaut
    Citation Envoyé par CyberChouan Voir le message
    A mon avis, si tu as des classes portant le même noms à des niveaux différents de ton application, c'est que tu les as mal nommées (pas suffisamment précisément).

    Par exemple, si tu as deux type d'utilisateur gérés chacun par une classe, plutôt que d'avoir deux classes "User" dans des packages différents, il vaut mieux avoir des classes aux noms explicites comme AdminUser et StandardUser, par exemple.
    Les noms de mes classes sont générés automatiquement par l'utilisation de JAXB. Du coup je ne peux pas etre plus précis.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 231
    Par défaut
    Bonjour,

    je reviens à mon problème.

    Je comprends ce code ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    pour les différencier dans tes classes tu dois ecrire :
    org.prog.Builder builder1 = new org.prog.Builder();
    org.prog.subpack.Builder builder2 = new org.prog.subpack.Builder();
    Cependant si je fait ca import package.nom_classe
    il me donne comme erreur:

    ..\generated\CreationXml.java:23: package audit.Root does not exist
    import audit.Root.Exploitations;
    J'ai essayé de modifier mon classpath mais je n'y arrives pas.




    Le code pour la compilation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @SET CLASSPATH=.
    @SET CLASSPATH=%CLASSPATH%;C:\XmlPasteur1.0\
    @SET CLASSPATH=%CLASSPATH%;C:\XmlPasteur1.0\src\
    @SET CLASSPATH=%CLASSPATH%;C:\XmlPasteur1.0\src\jxl.jar
    @SET CLASSPATH=%CLASSPATH%;C:\XmlPasteur1.0\src\generated\audit\
    @SET PATH=%PATH%;C:\XmlPasteur1.0\
    @SET PATH=%PATH%;C:\XmlPasteur1.0\src\
    @SET PATH=%PATH%;C:\XmlPasteur1.0\src\jxl.jar
    @SET PATH=%PATH%;C:\XmlPasteur1.0\src\generated\audit\
    @SET java_home=C:\sun\jdk1.6.0_02\bin\
    "%java_home%javac"  -cp ../Lib/jxl.jar; ../generated\*.java
    pause
    Le code qui pose problème lors de l'import:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    import generated.Root.Exploitations;
    import generated.Root.Exploitations.Mesure;
    import generated.Root.Exploitations.Mesure.Prestation;
    import generated.Root.Exploitations.Mesure.Rubrique;
    import generated.Root.Exploitations.Mesure.Rubrique.SousRubrique;
    import generated.Root.Exploitations.Mesure.Rubrique.SousRubrique.Item;
    import generated.Root.Exploitations.Mesure.Rubrique.SousRubrique.Item.Resultat;
    
    import audit.Root.Exploitations;
    
    import javax.swing.JOptionPane;
    import javax.xml.bind.JAXBContext;
    import javax.xml.bind.JAXBException;
    import javax.xml.bind.Marshaller;
    Seul la ligne import en rouge m indique l'erreur citée plus haut.
    Je n'arrives vraiment pas!
    Je vous remercie de votre aide

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 231
    Par défaut
    Je viens de tester ce qu'à dit Eclesia, cela ne fonctionne pas Je ne dois vraiment pas comprendre

    Je vous donne mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    //on crée un contexte JAXB pour la classe 
    				//on crée un contexte JAXB pour la classe 
    				JAXBContext context;
    				try {
    					context = JAXBContext.newInstance("audit");
     
    				//on crée un marshaller a  partir du contexte et  on créée es noeuds du fichier xml
    					Marshaller m = context.createMarshaller();
     
    					generated.audit.ObjectFactory factory=new generated.audit.ObjectFactory();
    					generated.audit.Root root= (generated.audit.Root)(factory.createRoot());
    				}
    				catch (JAXBException e1) {
    					e1.printStackTrace();
    				}
    L'erreur qui en suit :
    ..\generated\CreationXml.java:219: package generated.audit does not exist
    generated.audit.ObjectFactory factory=ne
    w generated.audit.ObjectFactory();
    ^
    ..\generated\CreationXml.java:219: package generated.audit does not exist
    generated.audit.ObjectFactory factory=ne
    w generated.audit.ObjectFactory();

    ^
    ..\generated\CreationXml.java:220: package generated.audit does not exist
    generated.audit.Root root= (generated.au
    dit.Root)(factory.createRoot());
    ^
    ..\generated\CreationXml.java:220: package generated.audit does not exist
    generated.audit.Root root= (generated.au
    dit.Root)(factory.createRoot());

    ^
    4 errors
    Voila je continue a chercher mais si vous pouvez m'aider ... Merci d'avance.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 231
    Par défaut
    up

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 231
    Par défaut
    J'ai simplement du modifier mon classpath qui n'était pas bon

    Merci de votre aide.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/02/2009, 16h04
  2. Réponses: 4
    Dernier message: 11/12/2007, 12h02
  3. probleme importation fichier .txt sous Excel
    Par darkspoilt dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/11/2007, 18h15
  4. import fichier délimité sous excel.
    Par monf29 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/06/2007, 09h06
  5. Réponses: 31
    Dernier message: 30/09/2006, 22h08

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