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
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
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
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.
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.
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
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
si vous ne voulez pas traiter ces détails, vous pouvez également utiliser les assistants exportation jar D'Eclipse ou NetBeans.
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.
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
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)
pour lancer jar, il faut d'abord créer
exécutable jar
puis
"151900920 de la commande" travaillerajava-jar xyz.jar