java -Ddata=args -Dcommit=no -jar post.jar
Dans le script ci-dessus, comment sont data
et commit
dans java accessible?Comment les propriétés fournies sur la ligne de commande sont-elles accessibles en Java?
java -Ddata=args -Dcommit=no -jar post.jar
Dans le script ci-dessus, comment sont data
et commit
dans java accessible?Comment les propriétés fournies sur la ligne de commande sont-elles accessibles en Java?
Vous utilisez System.getProperty
:
System.getProperty("data");
System.getProperty("commit");
Comme son nom l'indique, ce sont des propriétés du système et pas d'arguments de ligne de commande comme le suggère votre titre. les arguments de ligne de commande seraient java -jar post.jar arg1 arg2
Dans votre fonction principale, vous avez passé un tableau de chaînes contenant des arguments.
tutoriel Java a un programme qui vous montre comment cela fonctionne:
public class Echo {
public static void main (String[] args) {
for (String s: args) {
System.out.println(s);
}
}
}
Mais cela ne concerne que les arguments donnés à votre code. vous avez montré ceux-là particulières sont données à l'interpréteur Java lui-même et vous pouvez utiliser System.getProperty()
pour y accéder:
String data = System.getProperty ("data");
String commit = System.getProperty ("commit");
-D définit en fait des propriétés du système, ils sont en ligne de commande pas d'arguments –
Pour l'exemple -D
String foo = java.lang.System.getProperty("data");
et les arguments de ligne de commande sont accessibles via le paramètre args à 'public void main (String ... args)'. –