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 :

[JAR] Sécuriser un JAR exécutable


Sujet :

Java

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 10
    Points
    10
    Par défaut [JAR] Sécuriser un JAR exécutable
    Salut,
    Je voulais savoir comment faire pour :
    -Ne pas pouvoir extraire mon fichier JAR exécutable.
    -Rendre mon JAR exécutable sur une seule machine que je définie moi même ou lors du premier lancement de l'application le jar ne serai pas exécutable d'une autre machine.
    Le fait est que je veut vendre une application et me garantir de ne pas la distribuer sans mon autorisation.
    J'ai fais une recherche et j'ai trouvé la méthode de signature mais je ne comprend pas à quoi ça sert exactement et est ce qu'elle résolue mon problème.
    Merci d'avance

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par elmes Voir le message
    -Ne pas pouvoir extraire mon fichier JAR exécutable.
    Impossible. Un JAR n'est qu'un .zip qui contient un programme. Et si tu en fais un .zip protégé par mot de passe, il ne démarrera pas.
    (Il existe sûrement des services pour transformer un JAR en un programme encapsulé dans un format moins connu qu'un .zip, mais je ne les connais pas.)

    Citation Envoyé par elmes Voir le message
    -Rendre mon JAR exécutable sur une seule machine que je définie moi même ou lors du premier lancement de l'application le jar ne serai pas exécutable d'une autre machine.
    C'est pas fourni par Java de base, et j'ai pas connaissance de fournisseurs de ce genre de choses à intégrer à un JAR.
    Ceci étant dit, il existe des fournisseurs plus ou moins efficaces de ce genre de choses pour d'autres environnements, et je ne les connais pas non plus.

    À noter que :
    - De toute façon, c'est contournable, sauf si la plupart du programme s'exécute en fait sur Internet, avec des ordinateurs sous ton contrôle.
    - Tes clients vont moyennement apprécier que leur programme cesse de marcher parce qu'ils ont changé de carte réseau / carte graphique / carte mère / processeur.
    - Tes clients peuvent ne pas apprécier qu'une connexion Internet avec accès à ton serveur (ou à ton fournisseur de protection anticopie) soit nécessaire pour démarrer le programme la première fois.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Merci thelvin tu m'indique un peu la route à prendre je vais chercher un peu et trouver une solution, dès que je trouve une, je te met en courant

  4. #4
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Bonjour,

    à ma connaissance, tu ne peux pas arriver à ce genre de résultats avec du Java pur.
    Une des solutions les plus 'viables' rien qu'avec du java serait de mettre en place une connexion à un serveur distant pour valider l'utilisation.
    C'est une solution assez courante et qui te permet de faire ce que tu veux (contrôler le nombre de licenses, gérer une date d'expiration, etc.)

    Je vois deux inconvénients:
    - Un accès internet est obligatoire (dans certaines entreprises, ça peut être génant : problèmes de droit d'accès au réseau, configuration du proxy),
    - ça reste contournable pour quelqu'un qui sait faire du reverse engineering. Pour lui compliquer la tâche, tu peux toujours obfusquer, mais cela ne fera que décourager les moins motivés. Donc si ton projet a un attrait particulier et que l'utilisateur s'y connait, c'est cuit...

    En ce qui concerne la signature, cela permet à l'utilisateur de s'assurer que tu es bien l'auteur du JAR car tu l'as signé avec une clé privée à ton nom.
    Rien n'empêchera l'utilisateur de supprimer la signature du Manifest pour changer cela...

  5. #5
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 791
    Points
    4 791
    Par défaut Java Web Start
    Si une connexion Web est possible sur le poste client, tu peux utiliser Java Web Start. C'est un système intéressant pour :
    - décourager le piratage : le programme est enregistré dans un "cache" dédié. En regardant le contenu du cache, je me suis rendu compte que le programme est éclaté en une multitudes de petits fichiers en binaire. Je souhaite bon courage au pirate ...
    - faciliter la maintenance : tu fais une nouvelle version et hop, tes clients sont à jour.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par Népomucène Voir le message
    Si une connexion Web est possible sur le poste client, tu peux utiliser Java Web Start. C'est un système intéressant pour :
    - décourager le piratage : le programme est enregistré dans un "cache" dédié. En regardant le contenu du cache, je me suis rendu compte que le programme est éclaté en une multitudes de petits fichiers en binaire. Je souhaite bon courage au pirate ...
    - faciliter la maintenance : tu fais une nouvelle version et hop, tes clients sont à jour.
    Tiens oui, c'est pas con. Reste que :
    - La contrainte "ne marche que sur un seul ordinateur" reste chaude à mettre en œuvre. Ou alors il faut que le programme ouvre une session sur le serveur, et que le serveur n'accepte qu'une session par copie vendue du programme. (Genre par identifiant client)
    - L'accès Internet devient obligatoire.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Je ne connais pas JWS dans le détail, mais il me semblait qu'il offrait un environnement sécurisé (sandbox).
    Si c'est proche des Applets, tu risque d'être limité, en particulier sur les connexions réseau et sur les accès disques.

    Après, comme JWS n'est pas trop mon rayon, je peux me tromper...

  8. #8
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Deaf Voir le message
    Je ne connais pas JWS dans le détail, mais il me semblait qu'il offrait un environnement sécurisé (sandbox).
    Si c'est proche des Applets, tu risque d'être limité, en particulier sur les connexions réseau et sur les accès disques.
    JWS propose bien une sandbox avec une API sécurisé (package javax.jnlp).

    Maintenant en signant ton application tu peux très bien demander à avoir tous les droits et donc déployer n'importe quelle applications...


    a++

  9. #9
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 791
    Points
    4 791
    Par défaut
    Maintenant en signant ton application tu peux très bien demander à avoir tous les droits et donc déployer n'importe quelle applications...
    +1

    C'est ce que je fais tous les jours et je génère toujours un fichier local de paramètres dans lequel je fourre tout ce dont j'ai besoin :
    - mots de passe cripté
    - droits d'utilisation
    - préférences utilisateurs
    - paramètres de connexion à la base de données

    et aussi les logs d'erreurs ce qui bien utile pour savoir ce qui cloche parfois.

    - L'accès Internet devient obligatoire.
    On Peut imaginer qu'une entreprise n'ouvre sa connexion que pour l'installation et les mises à jour.
    Le reste du temps, on peut se servir de l'application même si elle n'est pas connectée au site.

    Ceci veut dire, pour répondre à la problématique de elmes, que l'installation de son application
    peut se faire par JWS dans le cadre contrôlé d'une "préparation de poste" qui serait provisoirement connecté au serveur.
    L'utilisateur pourrait travailler "offline" par la suite.

    Encore autre chose, si l'application de elmes utilise une base de données, la protection peut aussi se situer à l'intérieur de la base.
    J'ai livré une application avec ce type de protection : il y avait un compteur d'utilisation dans un champ crypté de la base.
    Il était "surveillé" par une procédure stockée dont j'avais seul l'accès.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  10. #10
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Je vous remercie pour votre aide.

    Citation Envoyé par Népomucène Voir le message
    On Peut imaginer qu'une entreprise n'ouvre sa connexion que pour l'installation et les mises à jour.
    Le reste du temps, on peut se servir de l'application même si elle n'est pas connectée au site.

    Ceci veut dire, pour répondre à la problématique de elmes, que l'installation de son application
    peut se faire par JWS dans le cadre contrôlé d'une "préparation de poste" qui serait provisoirement connecté au serveur.
    L'utilisateur pourrait travailler "offline" par la suite.
    C'est une idée optimale je pense, très utile aussi, de façon que l'utilisateur se connecte au serveur avec un login et un mot de passe et il obtient une validation de l'application de la machine d'ou il se connecte par l'adresse mac. Et lorsque il veut faire un mise à jour ou lancer l'application d'une autre machine il se connecte au serveur une autre fois et il travaille après hors ligne.
    Citation Envoyé par Népomucène Voir le message
    Encore autre chose, si l'application de elmes utilise une base de données, la protection peut aussi se situer à l'intérieur de la base.
    J'ai livré une application avec ce type de protection : il y avait un compteur d'utilisation dans un champ crypté de la base.
    Il était "surveillé" par une procédure stockée dont j'avais seul l'accès.
    Oui mon application contient une base MySQL mais l'utilisateur peut y accéder à travers une interface de gestion de MySQL donc il peut modifier et la pirater.

    Bref, je ne peut pas sinon faire une installation et organiser les ressources à utiliser de façon que si on copie le dossier d'installation on peut pas ouvrir l'application comme certains programmes sur Windows. Parce que je n'ai pas beaucoup de clients pour cette application et ça m'embête pas de ne pas fournir une installation, je y installe moi même l'application pour eux à chaque fois qu'ils me demandent.
    Ou, je fournie l'installation et lors de l'installation je change la clé de celle ci avec un script, soit disant que j'ai une table de clés à chaque installation je change de clé et lorsque le client veut la réinstaller je lui fournie sa clé suivante. Je pense que ça serait plus facile.

  11. #11
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Salut,
    j'ai trouvé un tutoriel pour sécuriser une application java.
    Ce tutoriel fait presque la façon que j'ai citer toute à l'heure avec un script VB.
    Je vais l'essayer et voir le résultat.

  12. #12
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Bonsoir, j'ai pu enfin trouver une solution à l'aide de ce tutoriel que j'ai citer hier.
    Je tester le code source fournie la-ba et j'ai pu l'exécuter.
    Merci pour vous tous

  13. #13
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 791
    Points
    4 791
    Par défaut
    Désolé d'être un peu tatillon, mais cette sécurisation ne semble fonctionner que sous windows.
    J'ai des clients qui avaient tout leur parc sous windows et qui ont fait passer une partie sous Ubuntu pour faire des économies.
    Je suis assez content que mes applications soit en java et déployé par JWS. Cela fonctionne dans tous les environnements.

    Mais bon. Dans un premier temps, il ne faut pas trop charger la barque, sinon tu ne pourras jamais finir le projet.
    Tu pourras toujours revenir sur la sécurisation si ton application est vraiment largement vendue (ce que je te souhaite).
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  14. #14
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Ça, et puis surtout, le tutoriel en question indique comment obtenir une signature matérielle (fiable ? Quelqu'un sait ?), et puis c'est tout.
    Reste à s'en servir pour implémenter une sécurité, bon courage.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  15. #15
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par Népomucène Voir le message
    Mais bon. Dans un premier temps, il ne faut pas trop charger la barque, sinon tu ne pourras jamais finir le projet.
    Tu pourras toujours revenir sur la sécurisation si ton application est vraiment largement vendue (ce que je te souhaite).
    Merci Népomucène, et oui c'est un inconvénient de cette solution qu'elle n'est pas réalisable sur UNIX c'est vrai.
    Mais comme tu dit ça dépend du nombre de ventes et des clients si ils travaillent sous Windows. Pais pour l'instant c'est une solution optimale pour moi
    Reste pour mon projet comment utiliser les outils de obfuscator pour lutter contre le reverse engineering.
    Bref, je pense que ça mérite un nouveau sujet puisque celui ci est marqué résolue.

  16. #16
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 791
    Points
    4 791
    Par défaut
    il obtient une validation de l'application de la machine d'ou il se connecte par l'adresse mac
    Récupération de l'adresse MAC en java:
    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
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    import java.io.BufferedInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Scanner;
    import java.util.Vector;
     
    /**
     * Classe permettant de récupérer l'adresse MAC d'un ordinateur.<br>
     * <u>How to use this :</u><br>
     * <code>
     * try {<br>
     * Vector<String> myAdressMacList = new AddressMAC().getAddressMacLs();<br>
     * } catch (UnsupportedOperation e) {<br>
     * e.printStackTrace();<br>
     * }<br>
     * </code>
     * <br>
     * @author Chappert Cedric
     * @version 0.1.0
     */
    public final class AddressMAC {
     
        private String regExMacAddress1 = "([0-9a-fA-F]{2}";  // this is the regex to matche a mac address like
        private String regExMacAddress2 = "){5}[0-9a-fA-F]{2}"; // ([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}
        private Vector<String> addressMacLs = null; // the list will be return in a Vector
     
        /**
         * Operation is not supported by the class
         * @author Chappert Cedric
         * ( Just to show how create his own exception
         */
        public class UnsupportedOperation extends Exception {
     
            private static final long serialVersionUID = 823904730228240652L;
     
            public UnsupportedOperation() {
                super("Unknow Operating System :\n" +
                        "\t Only support : Windows, Linux and MacOSX, maybe some UNIX\n"
                        + "Others : you haven't got rights to do this.");
            }
     
        }
     
        /**
         * Default Constructor<br>
         * Provide switch on differents operating system<br>
         * @throws UnsupportedOperatingSystem if the Operating system is not supported
         */
        public AddressMAC() throws UnsupportedOperation {
            Scanner sc = new Scanner(System.getProperty("os.name")); // get os name
            String os = sc.next();
            if (os.equalsIgnoreCase("Windows"))
                this.findMac("ipconfig /all", "-");
            else if (os.equalsIgnoreCase("Linux"))
                this.findMac("/sbin/ifconfig", ":");
            else if (os.equalsIgnoreCase("Mac OS X"))
                this.findMac("ifconfig", ":");
            else { // inconnue
                // try ifconfig ??? maybe it s an Unix and it can also
                // execute the command
                try {
                    this.findMac("ifconfig", ":");
                } catch (UnsupportedOperation e) {
                    e.printStackTrace(); // Unsupported for many reason
                }
            }
            sc.close();
        }
     
        /**
         * Execute the command and put all finded macAdress in this Vector
         * @param path
         * @param separator (Microsoft doesn t want to do like others)
         * @throws UnsupportedOperation
         */
        private void findMac(String path, String separator) throws UnsupportedOperation {
            try {
                Process p = Runtime.getRuntime().exec(path); // execute the command
                InputStream res = new BufferedInputStream(p.getInputStream());
                StringBuffer b = new StringBuffer();
                int c = res.read(); // transfert of the result from the console
                while (c!=-1) { // in a String buffer
                    b.append((char) c);
                    c = res.read();
                }
                Scanner sc = new Scanner(b.toString()); // Analyse the resultat
                this.addressMacLs = new Vector<String>();
                while (sc.hasNext()) { // while we have Lines
                    String str = sc.next();
                    if (str.matches(this.regExMacAddress1 + separator
                            + this.regExMacAddress2))
                        this.addressMacLs.add(str);
                }
                res.close(); // Close all
                sc.close();
            } catch (IOException e) { // Troubles with Stream or runtime ?
                e.printStackTrace();
            } catch (Exception e) { // trouble with others (like Security manager...)
                throw new UnsupportedOperation();
            }
        }
     
        /**
         * @return a list of all mac adress in a Vector<String>
         */
        public Vector<String> getAddressMacLs() {
            return addressMacLs;
        }
     
     
        public static void main(String[] args) {
            try {
                Vector<String> myAdressMacList = new AddressMAC().getAddressMacLs();
                for (int i = 0; i < myAdressMacList.size(); i++) {
                    System.out.println("myAdressMacList " + myAdressMacList.get(i));
                }
            } catch (AddressMAC.UnsupportedOperation ex) {
                ex.printStackTrace();
            }
        }
    }
    C'est un code que j'ai récupéré quelque part et je suis infoutu de retrouver le site, mais bon ...
    Je n'ai pas testé sur nux mais cela devrait marcher.
    L'idée est de rester dans le cadre de java.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  17. #17
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Népomucène Voir le message
    Récupération de l'adresse MAC en java:
    ...
    L'idée est de rester dans le cadre de java.
    Depuis Java 6 on peut utiliser directement la méthode getHardwareAddress() de NetworkInterface...

    a++

  18. #18
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 791
    Points
    4 791
    Par défaut
    ah oui tiens merci
    ...
    après quelques tests, je n'ai pas réussi à me servir de getHardwareAddress()
    aurais-tu l'adresse d'un exemple qui marche ?
    (le code que j'ai posté fonctionne lui, bien que cela soit un bricolage)
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

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

Discussions similaires

  1. exécuter un jar depuis un jar
    Par michelp3 dans le forum Général Java
    Réponses: 1
    Dernier message: 29/05/2012, 09h51
  2. Création de .jar et problème d'exécution
    Par kyryan dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 09/06/2011, 10h34
  3. Un jar et ensuite? Installeur / exécutable?
    Par HerQuLe dans le forum Général Java
    Réponses: 8
    Dernier message: 16/12/2008, 03h21
  4. [Comm.jar] Classe inconnue à l'exécution
    Par Mister Nono dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 15/02/2005, 10h26
  5. [Jar]Faire un jar exécutable
    Par Melchisedec dans le forum Général Java
    Réponses: 2
    Dernier message: 09/06/2004, 18h58

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