Tengo un JAR con 4 clases, cada una tiene el método principal. Quiero poder ejecutar cada uno de ellos según la necesidad. Estoy tratando de ejecutarlo desde la línea de comandos en el cuadro de Linux.Cómo ejecutar una clase desde Jar que no es la clase principal en su archivo de manifiesto
E.g. The name of my JAR is MyJar.jar
Tiene estructura de directorios para las clases principales de la siguiente manera:
com/mycomp/myproj/dir1/MainClass1.class
com/mycomp/myproj/dir2/MainClass2.class
com/mycomp/myproj/dir3/MainClass3.class
com/mycomp/myproj/dir4/MainClass4.class
Sé que puedo especificar una clase como principal en mi archivo de manifiesto. ¿Pero hay alguna manera por la cual puedo especificar algún argumento en la línea de comando para ejecutar cualquier clase que desee ejecutar?
yo probamos este:
jar cfe MyJar.jar com.mycomp.myproj.dir2.MainClass2 com/mycomp/myproj/dir2/MainClass2.class /home/myhome/datasource.properties /home/myhome/input.txt
Y me dio este mensaje:
com/mycomp/myproj/dir2/MainClass2.class : no such file or directory
(En el comando anterior, '/home/myhome/datasource.properties' y '/ home/micarpetapersonal /input.txt 'son los argumentos de línea de comando).
¿Simplemente empaquételas en diferentes jarras, usando otro jar para guardar las dependencias? – Nick
¿Por qué no tener una sola clase principal que llama al método específico (de los 4) en función de los argumentos de línea de comando? –