web-dev-qa-db-fra.com

Comment exécuter un fichier JAR

J'ai créé un fichier JAR comme ceci:

jar cf Predit.jar *.*

J'ai exécuté ce fichier JAR en double-cliquant dessus (cela n'a pas fonctionné). Je l'ai donc lancé à partir de l'invite du DOS comme ceci:

Java -jar Predit.jar

Il a généré des exceptions "Impossible de charger la classe principale". J'ai donc extrait ce fichier JAR:

jar -xf Predit.jar

et j'ai couru le fichier de classe:

Java Predit

Cela a bien fonctionné Je ne sais pas pourquoi le fichier JAR n'a pas fonctionné. S'il vous plaît dites-moi les étapes pour exécuter le fichier JAR

188
moon

Vous devez spécifier une classe principale dans le manifeste du fichier jar.

Le tutorial d’Oracle contient une démonstration complète, mais en voici une autre de toutes pièces. Vous avez besoin de deux fichiers:

Test.Java:

public class Test
{
    public static void main(String[] args)
    {
        System.out.println("Hello world");
    }
}

manifest.mf:

Manifest-version: 1.0
Main-Class: Test

Notez que le fichier texte doit se terminer par une nouvelle ligne ou un retour à la ligne. La dernière ligne ne sera pas analysée correctement si elle ne se termine pas par une nouvelle ligne ou un retour à la ligne.

Puis lancez:

javac Test.Java
jar cfm test.jar manifest.mf Test.class
Java -jar test.jar

Sortie:

Hello world
199
Jon Skeet
Java -classpath Predit.jar your.package.name.MainClass
52
Lynch

Avant d’exécuter la vérification du fichier JAR, Main-Class: classname est disponible ou non dans le fichier MANIFEST.MF. MANIFEST.MF est présent dans le bocal.

Java -jar filename.jar
23
KARTHIKEYAN.A

Vous devez ajouter un manifeste au fichier jar, qui indique au moteur d'exécution Java ce qu'est la classe principale. Créez un fichier 'Manifest.mf' avec le contenu suivant:

Manifest-Version: 1.0
Main-Class: your.programs.MainClass

Changez 'your.programs.MainClass' en votre classe principale actuelle. Maintenant, mettez le fichier dans le fichier Jar, dans un sous-dossier nommé 'META-INF'. Vous pouvez utiliser n'importe quel utilitaire Zip pour cela.

16
Florian Fankhauser

Une approche très simple pour créer un fichier .class, .jar.

Exécution du fichier jar. Pas besoin de trop se soucier du fichier manifeste. Rendez-le simple et élégant.

exemple de programme Java Hello World

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

compilation du fichier de classe

javac HelloWorld.Java

Création du fichier jar

jar cvfe HelloWorld.jar HelloWorld HelloWorld.class

ou

jar cvfe HelloWorld.jar HelloWorld *.class

Exécution du fichier jar

 Java -jar HelloWorld.jar

Ou

Java -cp HelloWorld.jar HelloWorld
11
nagendra547

Si vous ne voulez pas créer un manifeste uniquement pour exécuter le fichier jar, vous pouvez référencer la classe principale directement à partir de la ligne de commande lorsque vous exécutez le fichier jar.

Java -jar Predit.jar -classpath your.package.name.Test

Ceci définit la classe principale à exécuter dans le fichier jar.

10
Egil

Java

class Hello{
   public static void main(String [] args){
    System.out.println("Hello Shahid");
   }
}

manifeste.mf

Manifest-version: 1.0
Main-Class: Hello

En ligne de commande:

$ jar cfm HelloMss.jar  manifest.mf Hello.class 
$ Java -jar HelloMss.jar

Sortie:

Hello Shahid
4

Fichier JAR Eclipse Runnable

Créer un Java Projet - RunnableJAR

  • Si des fichiers jar sont utilisés, ajoutez-les au chemin de génération du projet.
  • Sélectionnez la classe ayant main () lors de la création du fichier Jar Runnable. enter image description here

Classe principale

public class RunnableMainClass {
    public static void main(String[] args) throws InterruptedException {
        System.out.println("Name : "+args[0]);
        System.out.println(" ID  : "+args[1]);
    }
}

Run Jar fichier en utilisant Java programme ( cmd ) en fournissant des arguments et en obtenant la sortie et l'affichage dans la console Eclipse.

public class RunJar { 
    static StringBuilder sb = new StringBuilder();
    public static void main(String[] args) throws IOException {
        String jarfile = "D:\\JarLocation\\myRunnable.jar";
        String name = "Yash";
        String id = "777";

        try { // jarname arguments has to be saperated by spaces
            Process process = Runtime.getRuntime().exec("cmd.exe start /C Java -jar "+jarfile+" "+name+" "+id);
                    //.exec("cmd.exe /C start dir Java -jar "+jarfile+" "+name+" "+id+" dir");
            BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream ()));
            String line = null;
            while ((line = br.readLine()) != null){
                sb.append(line).append("\n");
            }
            System.out.println("Console OUTPUT : \n"+sb.toString());
            process.destroy();
        }catch (Exception e){
            System.err.println(e.getMessage());
        }
   }
}

Dans Eclipse à trouver Raccourcis :

Aide ► Sommaire de l'aide ► Java guide de l'utilisateur du développement ► Références ► Menus et actions

3
Yash

Si vous ne souhaitez pas traiter ces détails, vous pouvez également utiliser les assistants d'exportation de fichiers jar d'Eclipse ou de NetBeans.

3
fortran

J'ai cette structure de dossier:

D:\JavaProjects\OlivePressApp\com\lynda\olivepress\Main.class D:\JavaProjects\OlivePressApp\com\lynda\olivepress\press\OlivePress.class D:\JavaProjects\OlivePressApp\com\lynda\olivepress\olives\Kalamata .class D:\JavaProjects\OlivePressApp\com\lynda\olivepress\olives\Ligurian.class D:\JavaProjects\OlivePressApp\com\lynda\olivepress\olives\Olive.class

Main.class est dans le package com.lynda.olivepress

Il y a deux autres forfaits:

com.lynda.olivepress.press

com.lynda.olivepress.olive

1) Créez un fichier nommé "Manifest.txt" avec deux lignes, d’abord avec Main-Class et une deuxième ligne vide.

Main-Class: com.lynda.olivepress.Main

D:\JavaProjects\OlivePressApp\Manifest.txt

2) Créer un fichier JAR avec un manifeste et un point d’entrée de classe principale

D:\JavaProjects\OlivePressApp> jar cfm OlivePressApp.jar Manifest.txt com/lynda/olivepress/Main.class com/lynda/olivepress/*

3) Exécuter JAR

Java -jar OlivePressApp.jar

Remarque: com/lynda/olivepress/* signifie inclure les deux autres packages mentionnés ci-dessus, avant le point 1)

2
Gabriel D