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 :

Rendre une application Java exécutable


Sujet :

Eclipse Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 89
    Par défaut Rendre une application Java exécutable
    Bonjour,
    J'ai terminé mon application et je voudrais la rendre executable(pour ne pas avoir a transporter toute la plate forme eclipse et executer a chaque fois)
    Comment faire??
    Merci pour votre aide...

  2. #2
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Tu fais un jar de ton projet et tu le rend exécutable.
    Tout est dans la FAQ.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 89
    Par défaut
    Merci pour la réponse, j'ai vu les solutions, mais c'est pas evident car ça a très bien marché sur une autre application simple.
    Je m'explique ...
    j'ai fais une aplication et j'ai rajouté beaucoup de fichiers externes.jar(Propriétés->chemin de génération java->Bibliotheque->Ajouter des fichier jar externes)qui sont nécessaires pour l'application.
    Est ce que ça peu causer un probleme?

    j'ai essayé ça aussi :comment créer un jar executable
    http://java.developpez.com/faq/java/...on#creationJar
    dans le fichier il y a:
    Class-Path: .\archive1.jar .\archive2.jar
    archive1.jar et archive2.jar est ce qu'il faut que je les crée avant de creer mon application.jar definitive ?(je n'ai pas bien compris)

    j'ai lancer la commande jar dans la console; voici le résultat:

    C:\eclipse\Java\jdk1.5.0_11\bin>jar cvfm Proj.jar META-INF/MANIFEST.MF
    manifest ajouté

    C:\eclipse\Java\jdk1.5.0_11\bin>java -jar Proj.jar
    Exception in thread "main" java.lang.NoClassDefFoundError: Start

    et pourtant mon main se trouve dans paquet=>Frame.java
    que dois je mettre a la place de Main-Class: Start ?

    redonner moi svp les etapes a suivre.
    est ce que quelqu'un veut bien m'aider.
    Merci pour votre aide...

  4. #4
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Il faut remplacer les lignes que tu vois dans la FAQ ! Il s'agit d'un exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Main-Class: com.toto.package.TaClasseAToi
    Class-Path: .\archive1.jar .\archive2.jar
    Pour archive1.jar et archive2.jar c'est aussi un exemple de comment ajouter des liens vers les jars externes nécessaires à ton application.

  5. #5
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Pour ne pas te compliquer la vie à chaque fois que tu veux faire le jar, tu peux faire un script ant :
    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
    <?xml version="1.0"?>
    <project name="myfreetv" default="jar" basedir=".">
     
        <property name="project.name" value="myfreetv" />
        <property name="src" value="src/" />
        <property name="build" value="bin/" />
        <property name="dist" value="dist/" />
        <property name="lib" value="lib/" />
        <property name="main" value="net.sourceforge.myfreetv.view.MyFreeTV" />
     
        <target name="init">
            <mkdir dir="${build}" />
            <mkdir dir="${dist}" />
        </target>
     
        <target name="compile" description="Compile the project" depends="init">
            <javac fork="yes" srcdir="${src}" destdir="${build}" classpath="${lib}" />
        </target>
     
        <target name="jar" description="JARs the Task" depends="compile">
            <jar destfile="${dist}/${project.name}.jar" basedir="${build}" compress="true">
                <manifest>
                    <attribute name="Built-By" value="${user.name}" />
                    <attribute name="Main-Class" value="${main}" />
                    <attribute name="Class-path" value=". lib/Trendy_1.8.jar lib/jawin.jar lib/xpp3_min-1.1.3.4.O.jar lib/xstream-1.2.1.jar" />
                </manifest>
            </jar>
        </target>
     
    </project>
    Remplace simplement les valeurs (nom du projet, classpath, etc...) par tes valeurs à toi, ensuite ouvre la perspective ant dans eclipse, ajoute y ce fichier que tu nommes build.xml (de préférence).
    Et voilà maintenant tu peux jarer en 1 clic

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 89
    Par défaut
    Mon fichier MANIFEST.MF
    ------------------------
    Manifest-Version: 1.0
    Created-By: 1.4.1_01 (Sun Microsystems Inc.)
    Main-Class: paquet.Frame
    Class-Path: .\xmlParserAPIs.jar .\xml.jar etc...
    ------------------------

    Ma classe principale
    ------------------------
    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
     
    package paquet;
     
    import java.awt.Color;
    import javax.swing.JFrame;
    .....
     
    public class Frame extends JFrame {
    ....
     
       public static void main(String[] args) {
     
    		SwingUtilities.invokeLater(new Runnable() {
    			public void run() {
    				Frame thisClass = new Frame();
    				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    				thisClass.setVisible(true);
     
    			}
     
    		});
    	}
     
    ....
    ------------------------------------------------
    et voici l'arborescence
    projet
    paquet
    frame.java
    frame => la classe
    main
    ------------------------------------------------
    C:\eclipse\Java\jdk1.5.0_11\bin>jar cvfm Projet.jar META-INF/MANIFEST.MF
    =>Les paquets sont bien ajoutés

    mais quand je lance la commande suivante:
    C:\eclipse\Java\jdk1.5.0_11\bin>java -jar Projet.jar
    =>Exception in thread "main" java.lang.NoClassDefFoundError: paquet/Frame

    pourtant main est bien dans frame qui est dans paquet
    ça devient impossible
    Merci de revoir avec moi svp

Discussions similaires

  1. Réponses: 10
    Dernier message: 02/09/2014, 09h56
  2. Réponses: 1
    Dernier message: 17/12/2013, 10h31
  3. Rendre une application Java exécutable
    Par kortobi dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 22/03/2013, 11h34
  4. Réponses: 0
    Dernier message: 27/12/2007, 16h48
  5. Comment exécuter une application java comme un batch C ?
    Par gillin dans le forum Général Java
    Réponses: 7
    Dernier message: 09/02/2007, 13h59

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