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!
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
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
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.
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
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.
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.
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.
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.
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.
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