Comment faire pour exécuter une classe de Pot qui n'est pas le Principal de la Classe dans son fichier de Manifeste

J'ai un POT avec 4 classes, chacun a la méthode Principale. Je veux être en mesure d'exécuter chacune de celles-ci comme par la nécessité. Je suis en train de l'exécuter à partir de la ligne de commande sur Linux.

E.g. The name of my JAR is MyJar.jar

Il a la structure de répertoire pour les principales classes comme suit:

com/mycomp/myproj/dir1/MainClass1.class
com/mycomp/myproj/dir2/MainClass2.class
com/mycomp/myproj/dir3/MainClass3.class
com/mycomp/myproj/dir4/MainClass4.class

Je sais que je peux spécifier une classe en tant que principal dans mon fichier de Manifeste. Mais est-il un moyen par lequel je peux spécifier un argument sur la ligne de commande à exécuter selon la classe je souhaite exécuter?

J'ai essayé ceci:

jar cfe MyJar.jar com.mycomp.myproj.dir2.MainClass2 com/mycomp/myproj/dir2/MainClass2.class /home/myhome/datasource.properties /home/myhome/input.txt

Et j'ai eu cette erreur:

com/mycomp/myproj/dir2/MainClass2.class : no such file or directory

(Dans la commande ci-dessus, '/home/myhome/source de données.propriétés' et '/home/myhome/input.txt " les arguments de ligne de commande).

  • Juste à les emballer dans différents pots, en utilisant un autre pot pour contenir les dépendances?
  • Pourquoi ne pas avoir une seule classe principale qui appelle la méthode spécifique(sur les 4) sur base d'arguments de ligne de commande?
InformationsquelleAutor Bhushan | 2011-03-29