Comment démarrer plusieurs programmes principaux dans un exécutable Java .jar?
Je suis en train d'écrire un programme qui contient plusieurs paquets. Chaque paquet a son propre programme principal que je souhaite à tous de lancer simultanément .jar est exécuté par un interpréteur. Cela semble assez simple question, mais quand j'ai regardé autour, il semble que les gens sont à l'aide de fourmis (que je n'ai jamais utilisé avant) et d'autres méthodes. Est-il un moyen plus simple dans Eclipse pour compiler un .bocal avec de multiples configurations de lancement, mieux encore, est-il un moyen de coder en dur elle?
Si la meilleure façon de le lancer, c'est par une fourmi. Ce genre de script ant aurais-je écrire si je veux le lancer... dire les principaux programmes dans les paquets de com.myapp.package1.principal, com.myapp.package2.principal, et com.myapp.package3.principal. Merci à l'avance!
source d'informationauteur Brian
Vous devez vous connecter pour publier un commentaire.
Le manifest jar vous permet de spécifier éventuellement pas plus d'une classe principale. C'est invoquée lorsque vous exécutez
java
avec le-jar
drapeau.Vous pouvez inclure plusieurs classes dans un seul pot, mais chacun (à l'exception de l'option 1 ci-dessus) doit être appelée à l'aide de la
-classpath
drapeau et le nom pleinement qualifié de la classe principale spécifié.L'exemple ci-dessus va générer des trois machines virtuelles java, chacun dans leur propre processus. Évidemment, cela ne veut pas répondre à votre exigence d'un "exécutable jar'.
Alternativement, vous pouvez avoir une méthode main qui commence threads séparés, de sorte qu'il n'y a qu'un seul processus, mais l'exécution en simultané.
Fourmi n'est pas un choix approprié pour vous aider à résoudre ce problème. Je soupçonne que vous voudrez probablement une seule méthode qui génère plusieurs threads. Hésitez pas à donner plus d'informations sur vos besoins.
Vous pouvez en créer un principal "main" de la classe qui exécute le reste.
Probablement je m'en tiendrais à le MANIFESTE de la solution, mais il existe une autre possibilité pour que cela soit fait:
Mais ici, vous devriez être prudent avec chemin d'accès et devrait correctement en fin de processus, sinon votre machine peut atteindre la limite pour les descripteurs de fichier.