Comment exécuter un fichier JAR

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

jar cf Predit.jar *.*

j'ai lancé ce fichier JAR en double cliquant dessus (ça n'a pas marché). Alors je l'ai lancé à partir de L'invite DOS comme ceci:

java -jar Predit.jar

Il a soulevé "impossible de charger la classe principale" des exceptions. J'ai donc extrait ce fichier JAR:

jar -xf Predit.jar

et j'ai couru le dossier de classe:

java Predit

ça a bien marché. Je ne sais pas pourquoi le fichier JAR n'a pas fonctionné. Merci dites-moi les étapes pour exécuter le fichier JAR

165
demandé sur Martin Prikryl 2009-08-06 14:43:01

11 réponses

vous devez spécifier une classe principale dans le Manifeste du fichier jar.

Oracle tutorial contient une démonstration complète, mais en voici une autre à partir de zéro. Vous avez besoin de deux fichiers:

Test.java:

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

manifeste.mf:

Manifest-version: 1.0
Main-Class: Test

notez que le fichier de texte doit se terminer par une nouvelle ligne ou retour de chariot. La dernière ligne ne sera pas analysée correctement si elle ne fin avec un retour de ligne ou de chariot.

puis exécuter:

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

sortie:

Hello world
178
répondu Jon Skeet 2015-07-10 06:18:05
java -classpath Predit.jar your.package.name.MainClass
48
répondu Lynch 2011-02-16 18:29:25

avant d'exécuter le jar check Main-Class: classname est disponible ou non dans manifeste.MF file. MANIFESTER.MF est présent dans un bocal.

java -jar filename.jar
15
répondu KARTHIKEYAN.A 2018-05-15 10:57:47

vous devez ajouter un manifeste au jar, qui indique au java runtime Quelle est la classe principale. Créer un manifeste de fichier.mf' avec le contenu suivant:

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

changez votre.programme.MainClass à votre classe principale. 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.

12
répondu Florian Fankhauser 2014-12-29 22:11:56

si vous ne voulez pas créer un manifeste juste pour exécuter le fichier jar, vous pouvez faire référence à la classe principale directement depuis la ligne de commande lorsque vous exécutez le fichier jar.

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

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

9
répondu Egil 2009-08-07 12:26:34

une approche très simple à créer .classe. ,fichier jar.

exécute le fichier jar. Pas besoin de trop s'inquiéter du Manifeste. Faites simple et elgant.

Java exemple de Programme " 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

lancer le fichier jar

 java -jar HelloWorld.jar

ou

java -cp HelloWorld.jar HelloWorld
7
répondu nagendra547 2017-08-31 06:44:29

Java

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

manifeste.mf

Manifest-version: 1.0
Main-Class: Hello

sur la ligne de commande:

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

sortie:

Hello Shahid
4
répondu Mohammad Shahid Siddiqui 2015-08-19 03:56:59

si vous ne voulez pas traiter ces détails, vous pouvez également utiliser les assistants exportation jar D'Eclipse ou NetBeans.

3
répondu fortran 2009-08-06 11:03:14

Eclipse Runnable JAR File

créer un projet Java – RunnableJAR

  • Si tout fichiers jar sont utilisés, puis les ajouter au projet de construction de chemin d'accès.
  • sélectionnez la classe ayant main() lors de la création du fichier JAR exécutable. enter image description here

Principal Classe

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 utilisant le programme java ( cmd ) en fournissant des arguments et obtenir 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 pour trouver Short cuts :

aide ► contenu de L'aide ► Java development user guide ► références ► Menus et Actions

3
répondu Yash 2015-10-06 13:23:02

j'ai cette structure de dossier:

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

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

il y a deux autres colis:

com.Lynda.olivepress.presse

com.Lynda.olivepress.olive

1) Créer un fichier nommé "Manifest.txt" avec deux lignes, D'abord avec la classe principale et une deuxième ligne vide.

Main-Class: com.lynda.olivepress.Main

D:\JavaProjects\OlivePressApp\ Manifest.txt

2) Créer JAR avec le manifeste et le point D'entrée de la classe principale

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

3) Exécutez le BOCAL

java -jar OlivePressApp.jar

Nota: com/lynda/olivepress/* signifie y compris les deux autres colis mentionnés ci-dessus, avant le point 1)

2
répondu Gabriel D 2016-01-12 11:38:30

pour lancer jar, il faut d'abord créer

exécutable jar

puis

java-jar xyz.jar

"151900920 de la commande" travaillera

-2
répondu Deepa 2015-01-30 13:59:21