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

Eclipse Java Discussion :

Problème de compilation [Débutant(e)]


Sujet :

Eclipse Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    juste curieux... Unite_Member
    Inscrit en
    Janvier 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : juste curieux... Unite_Member
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2015
    Messages : 41
    Points : 29
    Points
    29
    Par défaut Problème de compilation
    Bonjour,

    Je travaille avec Eclipse, mon projet se lance très bien, et est fonctionnel.
    La compilation me donne bien un . jar, mais celui-ci n'est pas utilisable.

    J'ai donc tenté de le lancer via la ligne de commande et là, 3 erreurs arrivent que je ne comprends pas.

    Voici la capture sous l'invite de commande

    Nom : e1.PNG
Affichages : 711
Taille : 3,9 Ko

    Les lignes correspondantes sont celles-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ImageIcon PanneauConfig = new ImageIcon(this.getClass().getResource("Settings.png" )); // L21
    ...
    main.setContentPane(new CdeWin()); //L571
    La ligne de jawax.swing (L217) je ne l'ai pas.

    Le peu que je comprenne, c'est qu'à la compilation, la ligne 21 ne comprends pas ou sont situées mes icônes.

    Voici l'arborescence:
    C:\...\workspace\WinCde\CdeWin\ dans lequel nous trouvons:
    • .settings
    • bin contient monprojet.class puis toutes mes icônes en .png
    • src
    • .classpath
    • .projet
    Il est certain qu'un ".exe" en double-clique serait idéal.

    Quelqu'un saurait-il m'indiquer comment résoudre ce problème ?

    Merci pour vos conseils.

  2. #2
    Rédacteur/Modérateur

    Avatar de alain.bernard
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Décembre 2011
    Messages
    749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 749
    Points : 5 219
    Points
    5 219
    Par défaut
    Bonjour,

    Le plus simple pour inclure tes icones dans ton JAR est :
    - soit de mettre ces icones dans le dossier src directement (au sein d'un package dédié par exemple)
    - soit de mettre ces icones dans un autre dossier à la racine du projet (par exemple 'images' ou 'resources') puis d'inclure ce dossier au BuildPath d'Eclipse (clic-droit sur le projet > Configure Build Path, plus d'infos ici : http://eclipse.developpez.com/faq/ed...un-projet-Java)

    Alain
    Pas de messages techniques par MP, les forums sont là pour ça.
    Rédacteur d'articles sur la plateforme Eclipse

    N'oubliez pas de consulter les FAQ Eclipse et les cours et tutoriels Eclipse

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    juste curieux... Unite_Member
    Inscrit en
    Janvier 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : juste curieux... Unite_Member
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2015
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Merci pour ta réponse, mais le vocabulaire m'échappe, normal, je suis un grand débutant...

    Ici par exemple
    - soit de mettre ces icones dans le dossier src directement (au sein d'un package dédié par exemple)
    Qu'appelles tu un package dédié?

    Ou là encore
    - soit de mettre ces icones dans un autre dossier à la racine du projet (par exemple 'images' ou 'resources') puis d'inclure ce dossier au BuildPath d'Eclipse (clic-droit sur le projet > Configure Build Path, plus d'infos ici : http://eclipse.developpez.com/faq/ed...un-projet-Java)
    Quand tu parles de racine du projet tu soulignes ce dossier => C:\...\workspace\WinCde

    En bricolant avec le buildpath, j'ai perdu mon .class sur le système...

    Je pars à la recherche de ce dernier.

    Comme tu peux le constater, je suis perdu.

  4. #4
    Rédacteur/Modérateur

    Avatar de alain.bernard
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Décembre 2011
    Messages
    749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 749
    Points : 5 219
    Points
    5 219
    Par défaut
    Citation Envoyé par labougie Voir le message
    Qu'appelles tu un package dédié?
    J'appelle un package dédié un package créé dans le répertoire src dans ton workspace Eclipse. Comme ceci:
    Nom : help.png
Affichages : 709
Taille : 5,5 Ko
    Clic droit sur 'src' > New > Package

    Citation Envoyé par labougie Voir le message
    Quand tu parles de racine du projet tu soulignes ce dossier => C:\...\workspace\WinCde
    Je parle de ce chemin en effet, ou plus précisément de la racine du projet dans le workspace Eclipse. Nul besoin de te compliquer la vie en gérant le contenu de ton dossier 'bin' ni les fichiers .class, Eclipse est là pour les gérer à ta place, ce n'est pas pour rien qu'ils sont masqués dans le Project Explorer
    Une configuration comme celle que j'ai mise en image, tu es sûr que les icônes seront bien dans ton JAR.

    Alain
    Pas de messages techniques par MP, les forums sont là pour ça.
    Rédacteur d'articles sur la plateforme Eclipse

    N'oubliez pas de consulter les FAQ Eclipse et les cours et tutoriels Eclipse

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    juste curieux... Unite_Member
    Inscrit en
    Janvier 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : juste curieux... Unite_Member
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2015
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Alain,

    J'ai beau créer un nouveau projet, ou bien copier / coller à la racine workspace, le .jar (quand j'en obtiens un) n'est pas fonctionnel par un double clique. Il possède pourtant l'icône Java...

    Pourrait-il y avoir alors une erreur de path dans ce type de ligne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ImageIcon PanneauConfig = new ImageIcon(this.getClass().getResource("Settings.png" )); 
    JButton Control = new JButton(PanneauConfig);
    Je parle surtout pour la 1ère qui va chercher le .png

    Pourtant depuis Eclipse tout roule à merveille, regarde ma belle capture

    Nom : Terminé avec bulle info sur 2 lignes.PNG
Affichages : 843
Taille : 164,3 Ko

    Quand je crée comme tu me l'indiques, lors du lancement, cela créé une erreur sur quasiment toutes les lignes du code, et bien évidement pas de compilation car il manque Java 1.8

    J'aimerais bien l'avoir en .jar et .exe mon programme.

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu dois mettre le chemin complet vers ta ressource (sauf si elle se trouve dans le même package que classe sur laquelle tu invoques le getResource().

    Je te redonnes un exemple complet qui fonctionne :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    package fr.developpez.exemple;
     
    import java.net.URL;
     
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
     
    public class Exemple {
     
    	public static void main(String[] args) {
     
    		JFrame frame = new JFrame("Démo");
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		URL url = Exemple.class.getResource("/resources/images/suricate.jpg"); // le chemin complet 
     
    		JLabel label = new JLabel( new ImageIcon(url) );
    		frame.add(label);
     
    		frame.pack();
    		frame.setLocationRelativeTo(null);
    		frame.setVisible(true);
     
    	}
     
    }

    Nom : exemplersc.PNG
Affichages : 662
Taille : 6,1 Ko

    + le projet
    + le jar
    Fichiers attachés Fichiers attachés
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    juste curieux... Unite_Member
    Inscrit en
    Janvier 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : juste curieux... Unite_Member
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2015
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Merci Joël pour ta réponse.

    Voici 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    import javax.swing.*;
    import java.awt.*;
    import java.io.*;
    import java.lang.Runtime;
     
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    public class CdeWin extends JPanel implements ActionListener {
     
        private static final long serialVersionUID = 1L;
     
        ImageIcon PanneauConfig = new ImageIcon(this.getClass().getResource("/resources/images/Settings.png" ));  
        JButton Control = new JButton(PanneauConfig);
     
        ImageIcon AjoutSuppressionProgrammes = new ImageIcon(this.getClass().getResource("/resources/images/Software.png" ));            
        JButton AppWiz = new JButton(AjoutSuppressionProgrammes);
     
    etc... sur plusieurs lignes
     
     
        public CdeWin() {
            setLayout(new GridLayout(4, 7));
     
            //  add(texte); 
            //     Control.setBackground(Color.GREEN);  "<html>ligne1 <br> ligne2</html>"
            add(Control);
            Control.addActionListener(this);
            Control.setToolTipText("<html>Control <br> Panneau de configuration</html>");
     
            add(AppWiz);
            AppWiz.addActionListener(this); 
            AppWiz.setToolTipText("<html>Applications List <br> Liste des programmes</html>");
     
    etc... sur plusieurs lignes
     
        public void actionPerformed(ActionEvent evt) {
            Object source = evt.getSource();
            Color color = getBackground();
     
            if (source == Control){
                color = Color.green;
                Control.setBackground(color);
     
                Runtime runtime = Runtime.getRuntime();
                try {
                    runtime.exec(new String[] { "c:\\Windows\\System32\\control.exe" } );
                }
                catch (Exception e)
                {}
            }
     
     
            if (source == AppWiz) {               
                color = Color.green;
                AppWiz.setBackground(color);
     
                Runtime runtime = Runtime.getRuntime();
                try {
                    runtime.exec(new String[] { "c:\\Windows\\System32\\control.exe", "appwiz.cpl" } );
                }
                catch (Exception e)
                {}
            }
     
    etc... sur plusieurs lignes
     
    Et le Main
     
            public static void main(String[] arg) {
                JFrame fenetre = new JFrame();
     
                fenetre.setContentPane(new CdeWin()); 
                fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
                fenetre.pack();
     
              // Définit un titre pour notre fenêtre
     
                 fenetre.setTitle("Windows Commands   by Labougie  V.1.0 ");
     
              //Définit sa taille : 400 pixels de large et 100 pixels de haut
                 fenetre.setSize(450, 350);
     
     
             //Nous demandons maintenant à notre objet de se positionner au centre
                 fenetre.setLocationRelativeTo(null);
     
            // Permet le redimentionnement
                 fenetre.setResizable(true);   
     
           // Permet de rendre visible la fenetre
                 fenetre.setVisible(true); 
             }
         }
    Voici la capture que j'ai dans Eclipse

    Nom : eclipse.PNG
Affichages : 736
Taille : 5,6 Ko

    Sinon en DOS, est-ce faisable avec javac, à condition de ranger tous les dossiers et fichiers sous c:\ (c'est juste une idée) ?

  8. #8
    Rédacteur/Modérateur

    Avatar de alain.bernard
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Décembre 2011
    Messages
    749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 749
    Points : 5 219
    Points
    5 219
    Par défaut
    Salut,

    Juste un détail, mais qui a son importance...
    Dans ton code tu mets "resources.images" mais ton package s'appelle "Resources.images".
    Attention à la casse

    Alain
    Pas de messages techniques par MP, les forums sont là pour ça.
    Rédacteur d'articles sur la plateforme Eclipse

    N'oubliez pas de consulter les FAQ Eclipse et les cours et tutoriels Eclipse

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    juste curieux... Unite_Member
    Inscrit en
    Janvier 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : juste curieux... Unite_Member
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2015
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Alain, merci pour ta relecture qui a été parfaite, la compilation est faite !

    Merci à Joël également qui ma mis sur la piste.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    juste curieux... Unite_Member
    Inscrit en
    Janvier 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : juste curieux... Unite_Member
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2015
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Par contre, j'aimerais savoir s'il existe une différence entre:
    • un programme fonctionnant sous Eclipse non compilé
    • le même programme compilé par Eclipse.


    Je m'explique :
    Toutes les fonctions sont ok avant la compilation, et ensuite certaines ne le sont plus (win8.1x64 par exemple) alors que sur d'autres versions de Win elles sont ok.
    Perso sous win8.1 je n'ai plus accès à ce type de fonctionnalité une fois compilé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Runtime runtime = Runtime.getRuntime();
    try {
        runtime.exec("c:\\Windows\\System32\\SnippingTool.exe");
    }
    catch (Exception e)
    {}
    Etrange mais quand je clique sur l'icône associée, le programme ne se lance pas, alors qu'avant compilation il est fonctionnel.

    Je suis preneur d'idées, de pistes, voir même de la solution.

    Merci d'avance.

  11. #11
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Eclipse est juste un outil qui permet de développer. En Java, en l'occurence, dans ton cas. Un programme Java non compilé, c'est juste des fichiers texte majoritairement, avec l'extension .java. Il ne s'exécutera pas. Lorsqu'on l'exécute sous Eclipse, il est automatiquement compilé, ce qui te donne l'impression de pouvoir s'exécuter directement sans être compilé.

    Par contre, il est possible que l'exécution ne soit pas faite par la même JRE (entre Eclipse et Windows), et ton problème pourrait avoir un rapport entre JRE 32 bits et JRE 64 bits.

    Pour savoir ce qu'il se passe, il faudrait déjà que tu traites les erreurs : au moins les tracer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Runtime runtime = Runtime.getRuntime();
    try {
        runtime.exec("c:\\Windows\\System32\\SnippingTool.exe");
    }
    catch (Exception e) {
       e.printStackTrace();
    }
    On ne fait jamais de catch vide.

    Ensuite, pour voir la trace, dans le cas ci-avant, il faudra exécuter ton programme en console.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  12. #12
    Rédacteur/Modérateur

    Avatar de alain.bernard
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Décembre 2011
    Messages
    749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 749
    Points : 5 219
    Points
    5 219
    Par défaut
    J'aurais même tendance à me répéter : attention à la casse. Les lettres de lecteur sont en majuscules dans Windows, et lorsqu'on interprète les fichiers dans Eclipse pas de problèmes mais à l'export ça plante. J'ai déjà eu le cas sur un projet pro.

    Alain
    Pas de messages techniques par MP, les forums sont là pour ça.
    Rédacteur d'articles sur la plateforme Eclipse

    N'oubliez pas de consulter les FAQ Eclipse et les cours et tutoriels Eclipse

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    juste curieux... Unite_Member
    Inscrit en
    Janvier 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : juste curieux... Unite_Member
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2015
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Joel, Alain,

    J'apprécie énormément la qualité des vos réponses.
    La casse, j'y suis pourtant assez sensible normalement, vu mes autres occupations.

    Concernant les exceptions, que dois je mettre dans ce cas de figure par exemple.
    J'ai des retours sur WIN10 comme quoi la commande WUAPP ne fonctionne pas.
    Dans ces conditions il faut alors que j'affiche un message indiquant que l'os ne prend pas cette commande, (c'est amusant de la part de Microsoft de ne pas avoir installer/mis cette commande très pratique, oubli ou bug comme j'ai pu le lire ici.

    J'ai pourtant essayé aussi avec le moyen shell:::{x}.
    Différents tests sur ce lien.

    Concernant le dysfonctionnement la cause était due au fait que ma version embarquée de java était en 32bits, après l'avoir remplacé, tout est rentré dans l'ordre.

    Labougie



  14. #14
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par labougie Voir le message
    Concernant le dysfonctionnement la cause était due au fait que ma version embarquée de java était en 32bits, après l'avoir remplacé, tout est rentré dans l'ordre.
    Tu aurais pu aussi tester dans quel type l'exécution était faite et choisir le bon exe à lancer en fonction.


    Citation Envoyé par labougie Voir le message
    Concernant les exceptions, que dois je mettre dans ce cas de figure par exemple.
    J'ai des retours sur WIN10 comme quoi la commande WUAPP ne fonctionne pas.
    Dans ces conditions il faut alors que j'affiche un message indiquant que l'os ne prend pas cette commande, (c'est amusant de la part de Microsoft de ne pas avoir installer/mis cette commande très pratique, oubli ou bug comme j'ai pu le lire ici.

    J'ai pourtant essayé aussi avec le moyen shell:::{x}.
    Différents tests sur ce lien.
    A mon avis, tu devrais plutôt poser cette question sur le forum Windows.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    juste curieux... Unite_Member
    Inscrit en
    Janvier 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : juste curieux... Unite_Member
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2015
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Joel,

    Tu aurais pu aussi tester dans quel type l'exécution était faite et choisir le bon exe à lancer en fonction.
    En dos, j'ai déjà fait un test sur la version de l'os, et pu parcourir les clés en fonction de celui-ci.
    Etant + que débutant en java, nfa031, tu comprendras que je suis assez vite dépassé, mais prêt à relever le défit, si tu me guides et conseilles correctement .

    Effectivement, lancer un outil polyvalent X32 et X64 sous windows m'intéresse énormément .

    labougie

  16. #16
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Tu peux tester l'architecture de l'OS par la propriété os.arch

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    String osArch = System.getProperty("os.arch");
    if ( "x86".equals(osArch) ) {
       // 32 bits
    } else if ( "amd64".equals(osArch) ) {
       // 64 bits
    }
    Les valeurs ne sont valables que pour Windows.

    On peut également tester l'architecture de la JVM, s'il s'agit de hotspot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    String jvmArch = System.getProperty("sun.arch.data.model");
    if ( "32".equals(jvmArch) ) {
       // 32 bits
    } else if ( "64".equals(jvmArch) ) {
       // 64 bits
    }
    Ensuite, le chemin par défaut correspond à l'architecture de l'os est toujours system32 (donc sur 32bits, c'est system32, et sur 64bits, c'est aussi system32).

    Sur 64bits, le dossier 32 bits est : SysWOW64

    De même que :
    • "Program Files" est le dossier par défaut pour les programmes (donc pour 64bits et 32bits)
    • "Program Files (x86)" est le dossier pour les applications 32 bits sur un os 64 bits
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    juste curieux... Unite_Member
    Inscrit en
    Janvier 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : juste curieux... Unite_Member
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2015
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Bonjour Joel,

    Dans cette ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    else if ( "amd64".equals(osArch) )
    amd64 contient toutes les version x64 de windows c'est bien ainsi qu'il faut l'interpréter.

    J'ai poussé la recherche sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.getProperty("os.arch")
    pour trouver cette lecture.

    A comprendre ce problème, il semble que l'approche soit + technique que je pensais.
    Je vais aller lire mon bouquin pour trouver des exemples, s'il y en a.

    labougie

  18. #18
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par labougie Voir le message
    Bonjour Joel,

    Dans cette ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    else if ( "amd64".equals(osArch) )
    amd64 contient toutes les version x64 de windows c'est bien ainsi qu'il faut l'interpréter.
    par System.getProperty("truc") on obtient juste une propriété de nom truc et type String. Par exemple System.getProperty("user.dir") donne le chemin d'accès au dossier d'exécution et System.getProperty("user.home") celui du dossier personnel.

    Dans le cas de os.arch, ça contient une valeur dont l'interprétation dépend de l'OS (donc de la valeur pour la propriété os.name) : dans le cas de Windows, lorsque l'architecture est 64bits, on trouve "amd64" dans cette propriété.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. problème de compilation sous visual C++
    Par fabmili dans le forum MFC
    Réponses: 4
    Dernier message: 08/02/2004, 19h52
  2. problème de compil devc++ socket
    Par stefdem dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/12/2003, 11h33
  3. Réponses: 1
    Dernier message: 29/10/2003, 12h16
  4. Problème de compilation de la DLL du XMLRad
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/04/2003, 16h46
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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