2011-07-21 26 views
132

Si usted tiene un archivo JAR llamado myJar.jar situado en /myfolder y desea utilizar la clase llamada myClass de ella, ¿cómo se van haciendo sobre él desde la línea de comandos?Ejecutar en el archivo Jar

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

+0

'java -cp myJar.jar myClass' funciona bien para mí: ¿tiene un período espurio en su línea de comandos en lugar de un espacio? –

+0

¿A qué te refieres cuando dices que quieres 'usar' esa clase? ¿Hay algún método principal al que quieras llamar en particular? – Gevorg

Respuesta

196

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

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

  2. Si no está dentro del directorio donde se encuentra myJar.jar, entonces usted puede 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

+6

Solo agregando a esto - en el caso de que com.mypackage.myClass (en el ejemplo anterior) tenga dependencias en otros archivos jar, ejecútelo de la siguiente manera: java -cp dependfile1.jar; archivo dependiente2.jar; c: \ ubicación_de_jar \ myjar.jar com .mypackage.myClass – akjain

+2

Una posible ruta de falla a tener en cuenta en caso de que esto no funcione: asegúrese de que su ruta completa a su clase coincida exactamente con lo que está en su archivo jar. Si descomprimes -l /location-of-jar/myjar.jar, y ves algo que no sea com/mypackage/myClass, este es tu problema. (Por ejemplo, si ve bin/com/mypackage/myClass, debe tener cd'ed en bin para compilar su archivo jar; lo que tenga no funcionará) –

+0

en algunos sistemas que necesite usar java -cp ./myjar.jar ... –

19

que desee:

java -cp myJar.jar myClass 

El Documentation da el siguiente ejemplo:

C:> java -classpath C:\java\MyClasses\myclasses.jar utility.myapp.Cool 
4

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

Utiliza la siguiente línea de comando:

java -cp ./myJar.jar myClass 

Dónde:

  1. myJar.jar está en el camino de la corriente , tenga en cuenta que . no está en el camino de la corriente en la mayoría de los sistemas. También se prefiere aquí una ruta totalmente calificada .

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

11

Sus son dos tipos de archivo JAR disponibles en Java

  1. archivo jar ejecutable/Ejecutable que contiene el archivo de manifiesto. para funcionar frasco Ejecutable puede utilizar Java -jar fileName.jar o java -jar -classpath abc.jar fileName.jar

  2. el archivo jar simple éstas no contiene el archivo de manifiesto de modo que, sencillo dirigido a su clase principal, dando a su paso java -cp ./fileName.jar MainClass

Cuestiones relacionadas