Ejecutar clase en el archivo Jar


Si tiene un archivo jar llamado myJar.jar ubicado en /myfolder y desea usar la clase llamada myClass desde él, ¿cómo lo hace desde la línea de comandos?

Pensé que sería ir al directorio y decir java -cp myJar.jar.myClass pero eso no está funcionando. Cualquier ayuda sería apreciada.

Author: cello, 2011-07-21

4 answers

Use java -cp myjar.jar com.mypackage.myClass.

  1. Si la clase no está en un paquete entonces simplemente java -cp myjar.jar myClass.

  2. Si no estás dentro del directorio donde se encuentra myJar.jar, entonces puedes hacer:

    1. En plataformas Unix o Linux:

      java -cp /location_of_jar/myjar.jar com.mypackage.myClass

    2. En Windows:

      java -cp c:\location_of_jar\myjar.jar com.mypackage.myClass

 212
Author: Bitmap,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-10 18:49:18

Quieres:

java -cp myJar.jar myClass

La Documentación da el siguiente ejemplo:

C:> java -classpath C:\java\MyClasses\myclasses.jar utility.myapp.Cool
 21
Author: Richard Campbell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-21 18:25:14

Hay dos tipos de archivos JAR disponibles en Java:

  1. Archivo jar ejecutable / ejecutable que contiene el archivo manifest. Para ejecutar un jar ejecutable puede usar java -jar fileName.jar o java -jar -classpath abc.jar fileName.jar

  2. Archivo jar simple que no contiene un archivo de manifiesto, por lo que simplemente ejecuta tu clase principal dando su ruta java -cp ./fileName.jar MainClass

 13
Author: Gaurav Singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-08 16:55:08

Suponiendo que estás en el directorio donde está el archivo myJar.jar y que myClass tiene un método public static void main() en él:

Se utiliza la siguiente línea de comandos:

java -cp ./myJar.jar myClass

Donde:

  1. myJar.jar está en la ruta actual , tenga en cuenta que . no está en la ruta actual en la mayoría de los sistemas. Aquí también se prefiere un camino completamente calificado.

  2. myClass es un camino de paquete completo a la clase, el ejemplo asume que myClass está en el paquete predeterminado que es una mala práctica, si está en un paquete anidado sería com.mycompany.mycode.myClass.

 5
Author: feeling abused and harassed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-21 18:20:34