web-dev-qa-db-fra.com

Exécuter la classe dans le fichier Jar

Si vous avez un fichier jar appelé myJar.jar situé dans/myfolder et que vous souhaitez utiliser la classe nommée myClass, comment procédez-vous à partir de la ligne de commande?

Je pensais que ce serait aller dans le répertoire et dire Java -cp myJar.jar.myClass mais cela ne fonctionne pas. Toute aide serait appréciée.

149
jim

Utilisez Java -cp myjar.jar com.mypackage.myClass.

  1. Si la classe ne fait pas partie d'un paquet, il suffit simplement de Java -cp myjar.jar myClass

  2. Si vous ne vous trouvez pas dans le répertoire où se trouve myJar.jar, vous pouvez alors:

    1. Sur les plateformes Unix ou Linux:

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

    2. Sous Windows:

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

224
Bitmap

Tu veux:

Java -cp myJar.jar myClass

La Documentation donne l'exemple suivant:

C:> Java -classpath C:\Java\MyClasses\myclasses.jar utility.myapp.Cool
21
Richard Campbell

Il existe deux types de fichiers JAR disponibles en Java:

  1. Fichier jar exécutable/exécutable contenant le fichier de manifeste . Pour exécuter un fichier jar exécutable, vous pouvez utiliser Java -jar fileName.jar ou Java -jar -classpath abc.jar fileName.jar.

  2. Fichier JAR simple qui ne contient pas de fichier manifeste. Il vous suffit donc d’exécuter votre classe principale en donnant son chemin Java -cp ./fileName.jar MainClass

15
Gaurav Singh

En supposant que vous soyez dans le répertoire où se trouve le fichier myJar.jar et que myClass a une méthode public static void main():

Vous utilisez la ligne de commande suivante:

Java -cp ./myJar.jar myClass

Où:

  1. myJar.jar est dans le chemin actuel, notez que . ne se trouve pas dans le chemin actuel de la plupart des systèmes. Un chemin qualifié complet est également préféré ici.

  2. myClass est un chemin de package qualifié pleinement qualifié vers la classe. L'exemple suppose que myClass figure dans le package default, ce qui est une mauvaise pratique. S'il s'agit d'un package imbriqué, ce serait com.mycompany.mycode.myClass.

5
user177800

C'est la bonne façon d'exécuter un .jar, et quelle que soit la classe dans ce .jar qui devrait avoir main(), les paramètres suivants lui sont associés:

Java -DLB="uk" -DType="CLIENT_IND" -jar com.fbi.rrm.rrm-batchy-1.5.jar
0
ubersucks