2009-09-13 8 views

Répondre

19

Voir Setting an Application's Entry Point

Si vous avez une application fournie dans un fichier JAR, vous devez trouver un moyen pour indiquer quelle classe dans le fichier JAR est le point d'entrée de votre application. Vous fournissez cette information avec l'en-tête de classe principale dans le manifeste, qui a la forme générale:

Main-Class: classname 

La valeur classname est le nom de la classe qui est le point d'entrée de votre application.

Rappelons que le point d'entrée est une classe ayant une méthode avec la signature

public static void main(String[] args). 

Après avoir défini l'en-tête de classe principale dans le manifeste, vous exécutez le fichier JAR en utilisant le formulaire ci-dessous de la commande java:

java -jar JAR-name 

La méthode principale de la classe spécifiée dans l'en-tête Main-Class est exécutée.


On crée d'abord un fichier texte nommé manifest.txt avec le contenu suivant:

Main-Class: MyPackage.MyClass 

Avertissement: Le fichier texte doit se terminer par une nouvelle ligne ou retour chariot. La dernière ligne ne sera pas analysée correctement si elle ne se termine pas par une nouvelle ligne ou un retour chariot.

Nous créons ensuite un fichier JAR nommé MyJar.jar en entrant la commande suivante:

jar cfm MyJar.jar Manifest.txt MyPackage/*.class 

Cela crée le fichier JAR avec un manifeste avec le contenu suivant:

Manifest-Version: 1.0 
Created-By: 1.6.0 (Sun Microsystems Inc.) 
Main-Class: MyPackage.MyClass 

Lorsque vous exécutez le fichier JAR avec la commande suivante, le principale méthode de MyClass exécute:

java -jar MyJar.jar 
-1

J'ai eu la même erreur. Le problème était que Windows 10 a soudainement décidé de définir mon dossier d'espace de travail en lecture seule.

Après avoir supprimé la coche en lecture seule dans les options du dossier, le problème a été résolu.

Questions connexes