Ich versuche herauszufinden, ob das 'a' als erstes String-Argument eingegeben wurde.Java Befehlszeilenargumente
Antwort
public class YourClass {
public static void main(String[] args) {
if (args.length > 0 && args[0].equals("a")){
//...
}
}
}
Ihre main
Methode hat ein String[]
Argument. Diese enthalten die Argumente, die an Ihre Anwendungen übergeben wurden (oft args
genannt, aber das ist keine Voraussetzung).
Befehlszeilenargumente werden im ersten String[]
Parameter main()
, bestanden z.B.
public static void main(String[] args) {
}
In dem obigen Beispiel enthält die args
alle Befehlszeilenargumente.
Die kurze, süße Antwort auf die gestellte Frage ist:
public static void main(String[] args) {
if(args.length > 0 && args[0].equals("a")) {
// first argument is "a"
} else {
// oh noes!?
}
}
Kommandozeilenargumente über String[] args
Parameter main
Verfahren zugänglich sind.
Für erste Argument können Sie args[0]
überprüfen
gesamte Code wie
aussehen würdepublic static void main(String[] args) {
if ("a".equals(args[0])) {
// do something
}
}
Programm Jedes Java beginnt mit
public static void main(String[] args) {
Das Array vom Typ String
dass main()
als Parameter Enthält die Befehlszeilenargumente für Ihr Programm. Wenn der Benutzer läuft das Programm als
$ java myProgram a
dann args[0]
den String „a“ halten.
Wie alle anderen schon gesagt haben ... ist die .equals-Methode das, was Sie brauchen.
In den unwahrscheinlichen Fall Sie so etwas wie verwendet:
if(argv[0] == "a")
dann funktioniert es nicht, weil == die Lage der beiden Objekte (physische Gleichheit) eher als der Inhalt (logische Gleichheit) vergleicht.
Da "a" von der Befehlszeile und "a" in der Quelle für Ihr Programm an zwei verschiedenen Stellen zugewiesen sind, kann das == nicht verwendet werden. Sie müssen die equals-Methode verwenden, die überprüft, ob beide Zeichenfolgen die gleichen Zeichen haben.
Eine andere Anmerkung ... "a" == "a" wird in vielen Fällen funktionieren, da Strings in Java speziell sind, aber 99.99999999999999% der Zeit, die Sie verwenden möchten .equals.
Verwenden Sie die apache commons cli, wenn Sie vorhaben, diese auf einen einzelnen Arg zu erweitern.
"Die Apache Commons CLI-Bibliothek stellt eine API zum Parsen von Befehlszeilenoptionen bereit, die an Programme übergeben werden. Sie kann auch Hilfemeldungen mit den Optionen für ein Befehlszeilentool ausgeben."
Commons CLI unterstützt verschiedene Arten von Optionen:
- POSIX wie Optionen (. Dh tar -zxvf foo.tar.gz)
- GNU wie lange Optionen (dh du --human lesbar. --max-depth = 1)
- Java ähnliche Eigenschaften (dh. java -Djava.awt.headless = true -Djava.net.useSystemProxies = true Foo)
- Short-Optionen mit Wert befestigt (dh. gcc -O2 foo.c)
- lange Optionen mit einzelnen Bindestrich (dh. ant-projec thelp)
Try Wert ein zu übergeben und vergleichen Sie die Methode equals wie folgt aus:
public static void main(String str[]) {
boolean b = str[0].equals("a");
System.out.println(b);
}
Folgen Sie diesem Link, um mehr über Command line argument in Java
Das ist nicht 'null'-safe ... – Samoth
Kommandozeilenargumente werden als Zeichenfolgen in der gespeicherten String
Array String[] args that is passed to
main() `.
java [program name] [arg1,arg2 ,..]
Befehlszeilenargumente sind die Eingaben, die von der Eingabeaufforderung akzeptiert, während das Programm läuft. Die übergebenen Argumente können alles sein. Welche ist im args[]
Array gespeichert.
//Display all command line information
class ArgDemo{
public static void main(String args[]){
System.out.println("there are "+args.length+"command-line arguments.");
for(int i=0;i<args.length;i++)
System.out.println("args["+i+"]:"+args[i]);
}
}
Beispiel:
java Argdemo one two
Der Ausgang wird sein: [? Wie Befehlszeilenargumente in Java analysieren]
there are 2 command line arguments:
they are:
arg[0]:one
arg[1]:two
In Ihrem Beispiel, was bedeutet die erste Zeile' javastack.java' ? Ich weiß nicht sicher, was das 'It' in' es verwendet, um die Eingabe von der Eingabeaufforderung zu akzeptieren, während das Programm ausgeführt wird.] Bezieht sich auf, aber die Sequenz ist 1) analysieren Befehl 2) Setup-Parameter 3) Programm ausführen. Ich weiß nicht genau, was das 'This' in' Dies beschleunigt wesentlich die Programmausführung, wenn das Programm von Benutzereingaben abhängig ist. 'Bezieht sich auf, aber es gibt nichts in _parameter passing_, um die Programmausführung_zu beschleunigen. – greybeard
- 1. Befehlszeilenargumente
- 2. Java: Überprüfen Sie, ob Befehlszeilenargumente null sind
- 3. WinMain-Befehlszeilenargumente
- 4. Befehlszeilenargumente Array
- 5. Eclipse-Befehlszeilenargumente
- 6. Griffon Befehlszeilenargumente
- 7. gruntjs - Befehlszeilenargumente
- 8. Java-Schleife durch Befehlszeilenargumente, um zu sehen, welche Benutzereingaben?
- 9. Auto-Vervollständigung Befehlszeilenargumente
- 10. QtCreator und Befehlszeilenargumente
- 11. C# Befehlszeilenargumente und ls
- 12. Befehlszeilenargumente in WxWidgets
- 13. Befehlszeilenargumente zu docker run
- 14. Befehlszeilenargumente in F # -Programm?
- 15. Delphi Windows Services Befehlszeilenargumente
- 16. F # Parse-Befehlszeilenargumente
- 17. Befehlszeilenargumente zu Node.js
- 18. Stata Befehlszeilenargumente im Stapelmodus
- 19. vorbei Befehlszeilenargumente zu ant
- 20. Benannte Befehlszeilenargumente in Ruby
- 21. Befehlszeilenargumente lesen Monad-Bibliothek
- 22. Grunt - Befehlszeilenargumente, nicht
- 23. Dateiumleitung VS. Befehlszeilenargumente
- 24. Firefox Befehlszeilenargumente in Verlängerung
- 25. Zeichenfolge wie Befehlszeilenargumente analysieren
- 26. x86_64 Assembly Befehlszeilenargumente
- 27. Befehlszeilenargumente - Objekt erforderlich: 'objshell.NameSpace (...)'
- 28. Maven Befehlszeilenargumente Umgebungsvariable
- 29. Befehlszeilenargumente zu Docker CMD
- 30. C++ Überprüfen Sie Befehlszeilenargumente
Mögliche Duplikat (http://stackoverflow.com/ Fragen/367706/how-to-parse-Kommandozeilenargumente-in-java) – xenteros