105 votes

Comment faire un fichier JAR exécutable ?

J'ai un programme qui consiste en deux simples fichiers Java Swing.

Comment créer un fichier JAR exécutable pour mon programme ?

0 votes

Qu'est-ce que vous demandez ? Comment exécuter le jar ou comment créer un exécutable à partir du jar (une commande, comme run.cmd) ?

0 votes

105voto

isurusndr Points 256

Un fichier jar est simplement un fichier contenant une collection de fichiers java. Pour qu'un fichier jar soit exécutable, vous devez spécifier l'endroit où le fichier main La classe est dans le fichier jar. L'exemple de code serait le suivant.

public class JarExample {

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                // your logic here
            }
        });
    }
}

Compilez vos classes. Pour créer un jar, vous devez également créer un fichier Manifest ( MANIFEST.MF ). Par exemple,

Manifest-Version: 1.0
Main-Class: JarExample

Placez les fichiers de classe de sortie compilés (JarExample.class,JarExample$1.class) et le fichier manifeste dans le même dossier. Dans l'invite de commande, allez dans le dossier où vos fichiers sont placés, et créez le jar en utilisant la commande jar. Par exemple (si vous nommez votre fichier manifeste comme jexample.mf)

jar cfm jarexample.jar jexample.mf *.class

Il créera l'exécutable jarexample.jar.

40voto

Twinscode Points 407

Sur Eclipse vous pouvez le faire simplement comme suit :

Cliquez à droite sur votre projet Java et sélectionnez Exportation .

Sélectionnez Java -> Fichier JAR exécutable -> Suivant.

Sélectionnez la Configuration de lancement et choisissez le fichier de projet comme votre Classe principale

Sélectionnez le dossier de destination où vous souhaitez l'enregistrer et cliquez sur Terminer.

0 votes

Configuration du lancement : <MainClasssName> - <ProjectName>

31voto

River Points 1356

Le voici en une ligne :

jar cvfe myjar.jar package.MainClass *.class

donde MainClass est la classe avec votre main méthode, et package es MainClass du paquet.

Notez que vous devez compiler votre .java pour .class avant de faire cela.

c  create new archive
v  generate verbose output on standard output
f  specify archive file name
e  specify application entry point for stand-alone application bundled into an executable jar file

Cette réponse est inspirée par le commentaire de Powerslave sur une autre réponse.

1 votes

Je reçois une erreur, Error: Could not find or load main class mtx.testClass Caused by: java.lang.ClassNotFoundException: mtx.testClass

0 votes

Es testClass défini dans l'un de vos .class des fichiers ? Assurez-vous que vous avez compilé votre source ( .java ) avant d'exécuter cette commande. Aussi, normalement votre classe devrait être UpperCamelCase, vous pourriez essayer de la renommer en TestClass à la place.

7voto

Willi Mentzel Points 7681

Si vous utilisez maven, ajoutez ce qui suit à votre fichier pom.xml fichier :

<plugin>
    <!-- Build an executable JAR -->
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <archive>
            <manifest>
                <mainClass>com.path.to.YourMainClass</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>

Ensuite, vous pouvez exécuter mvn package . Le fichier jar sera situé sous dans le répertoire cible répertoire.

0 votes

Une variante de ce qui précède.

4voto

Badri Paudel Points 479

Il est trop tard pour répondre à cette question. Mais si quelqu'un cherche cette réponse maintenant, je l'ai fait fonctionner sans erreur.

Tout d'abord, assurez-vous de télécharger et d'ajouter maven vers le chemin . [ mvn --version ] vous donnera les spécifications de la version si vous avez ajouté au chemin correctement.

Maintenant, ajoutez le code suivant dans le fichier projet maven [ pom.xml ] , dans le code suivant, remplacez par votre propre point d'entrée du fichier principal, par exemple [ com.example.test.Test ].

      <plugin>
            <!-- Build an executable JAR -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <archive>
                    <manifest>
                    <mainClass>
            your_package_to_class_that_contains_main_file .MainFileName</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>

Maintenant, allez à la ligne de commande [ CMD ] dans votre projet et tapez mvn package et cela va générer un fichier jar comme quelque chose comme ProjectName-0.0.1-SNAPSHOT.jar sous target répertoire.

Naviguez maintenant vers le cible répertoire par cd target .

Enfin, le type java -jar jar-file-name.jar et oui, cela devrait fonctionner avec succès si vous n'avez pas d'erreurs dans votre programme.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X