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
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
Java -classpath Predit.jar your.package.name.MainClass
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
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.
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
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.
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
Fichier JAR Eclipse Runnable
Créer un Java Projet - RunnableJAR
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
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.
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)