Comment transmettre des paramètres à un fichier jar au moment de l'exécution?

101

Comment transmettre des paramètres à un fichier JAR au moment de l'exécution?

nwinkler
la source

Réponses:

145

Pour passer des arguments au fichier jar:

java -jar myjar.jar one two

Vous pouvez y accéder dans la méthode main () de "Main-Class" (mentionnée dans le manifest.mffichier d'un JAR).

String one = args[0];  
String two = args[1];  
Reji
la source
40

La documentation JAVA dit :

java [options] -jar fichier.jar [argument ...]

et

... Les arguments sans option après le nom de classe ou le nom de fichier JAR sont transmis à la fonction principale ...

Vous devrez peut-être mettre les arguments entre guillemets simples.

Xn0vv3r
la source
7
Ce lien est mort.
bfontaine
1
Voici un lien de travail montrant l'utilisation de l'utilitaire jar de Java - docs.oracle.com/javase/tutorial/deployment/jar . À votre santé!
realPK
15

Vous pouvez le faire avec quelque chose comme ça, donc si aucun argument n'est spécifié, cela continuera quand même:

public static void main(String[] args) {
    try {
        String one = args[0];
        String two = args[1];
    }
    catch (ArrayIndexOutOfBoundsException e){
        System.out.println("ArrayIndexOutOfBoundsException caught");
    }
    finally {

    }
}

Et puis lancez l'application:

java -jar myapp.jar arg1 arg2
collations
la source
21
Vous ne devez jamais utiliser d'exceptions pour diriger votre code. Au lieu de cela, vous devriez vérifier la longueur du tableau avant d'y accéder!
chuck258
1
Eh bien, si le programme doit TOUJOURS avoir un ou plusieurs paramètres, n'en avoir aucun est à mon humble avis un cas légitime pour l'utilisation d'une exception.
MikeW
6
java [ options ] -jar file.jar [ argument ... ]

si vous devez transmettre le fichier de propriétés log4j, utilisez l'option ci-dessous

-Dlog4j.configurationFile=directory/file.xml


java -Dlog4j.configurationFile=directory/file.xml -jar <JAR FILE> [arguments ...]
Bachan Joseph
la source