web-dev-qa-db-fra.com

comment définir la classe principale par défaut en java?

J'ai 2 classes dans le même package. Les deux classes contiennent la méthode principale. Maintenant, je veux créer un fichier jar. Je veux construire 2 fichiers jar qui utilisent différentes fonctions principales comme principal par défaut.

par exemple

class A
{
  public static void main(String args[])
  {
    //do something
  }
}

class B
{
  public static void main(String args[])
  {
    //do something
  }
}

Comment le faire dans NetBeans IDE?

J'ai trouvé la réponse. U peut le faire facilement dans les netbeans: 1) clic droit sur projet> propriétés> exécuter> sélectionnez la classe frm et liste déroulante. Si simple dans les netbeans. Netbeans rock!

21
user189352

Dans le fichier jar, vous pouvez simplement l'ajouter à votre manifest.mft

Main-Class : A

Le fichier jar serait alors exécutable et appellerait le bon principal.

Sur la façon de faire cela dans Netbeans, vous pouvez regarder ceci: Produire un pot exécutable dans NetBeans

19
James Black

Cliquez avec le bouton droit sur le nœud du projet dans la fenêtre Projets et choisissez Propriétés du projet. puis recherchez run, là vous pouvez configurer votre classe principale, ** en fait l'a obtenu de l'aide par défaut de Netbeans

20
bos_ahonk

vous pouvez faire un clic droit sur le projet sélectionner "définir la configuration" puis "Personnaliser", à partir de là, vous pouvez choisir votre classe principale. ScreenShot

10
Assem-Hafez

En supposant que votre my.jar a une classe1 et une classe2 avec un principal défini dans chacune, vous pouvez simplement appeler Java comme ceci:

Java my.jar class1

Java my.jar class2

Si vous devez spécifier d'autres options à Java assurez-vous simplement qu'elles sont avant my.jar

Java -classpath my.jar class1
5
Anthony

Si vous créez 2 fichiers JAR exécutables, chacun aura son propre fichier manifeste, et chaque fichier manifeste spécifiera la classe qui contient la méthode main() que vous souhaitez utiliser pour démarrer l'exécution.

Dans chaque fichier JAR, le manifeste sera un fichier avec le chemin/nom suivant dans le JAR - META-INF/MANIFEST.MF

Il existe des moyens de spécifier des fichiers nommés alternativement en tant que manifeste JAR en utilisant paramètres de ligne de commande JAR .

La classe spécifique que vous souhaitez utiliser est spécifiée à l'aide de Main-Class: package.classname à l'intérieur du fichier META-INF/MANIFEST.MF.

Quant à savoir comment faire cela dans Netbeans - je ne suis pas sûr du haut de ma tête - j'utilise généralement IntelliJ et/ou Eclipse et je construis généralement le JAR via ANT ou Maven de toute façon.

3
Nate

Si les deux pots que vous souhaitez créer sont généralement les mêmes, et la seule différence est la classe principale qui doit être démarrée à partir de chacun, vous pouvez placer toutes les classes dans un troisième pot. Créez ensuite deux pots avec juste un manifeste dans chacun. Dans le fichier MANIFEST.MF, nommez la classe d'entrée à l'aide de Main-Class attribut.

En outre, spécifiez le Class-Path attribut. La valeur de ceci doit être le nom du fichier jar qui contient tout le code partagé. Déployez ensuite les trois fichiers jar dans le même répertoire. Bien sûr, si vous avez des bibliothèques tierces, celles-ci peuvent également être répertoriées dans l'attribut Class-Path.

1
erickson

Vous pouvez définir l'attribut Main-Class dans le manifeste du fichier jar pour pointer vers le fichier que vous souhaitez exécuter automatiquement.

0
Spike Williams

Le meilleur moyen est de gérer cela dans un script Ant. Vous pouvez créer 2 tâches différentes pour les 2 fichiers jar. Spécifiez la classe A comme classe principale dans le fichier manifeste pour le premier pot. de même, spécifiez la classe B comme classe principale dans le fichier manifeste pour le second bocal.

vous pouvez facilement exécuter les tâches Ant à partir de Netbeans.

0
Rahul

Appuyez sur F11 pour générer et exécuter le programme. Une fois que vous exécutez le programme, vous aurez une liste de classes. Sélectionnez votre classe principale dans la liste et cliquez sur OK pour exécuter.

0
Mohit Kapoor

En tant que commentaire, j'ai dû autoriser un client à exécuter une classe dans un bocal, ce qui signifiait que le fichier manifeste ne pouvait pas être modifié (on ne pouvait pas s'attendre à ce qu'il le fasse). Grâce au message d'Anthony et au commentaire de samy-delux, voici ce que le client peut désormais exécuter pour accéder au principal de la classe spécifique:

Java -cp c:\path\to\jar\jarFile.jar com.utils.classpath -e -v textString
0
Chris Clark