Inhaltsverzeichnis:
- Befehlszeilenargumente in einem Java-Programm verwenden
- Überprüfung der richtigen Anzahl von Befehlszeilenargumenten
Video: Java Break - Plumbing Barista with Custom BBj 2024
Die meisten Java-Programmierer benutzten einst eine textbasierte Entwicklungsschnittstelle. Sie tippten einen Befehl in ein unscheinbares Fenster, normalerweise mit weißem Text auf schwarzem Hintergrund.
Wie langweilig!Das einfach aussehende Fenster zeigt die verschiedenen Namen an, je nachdem, welches Betriebssystem Sie verwenden. In Windows ist ein solches Textfenster ein Eingabeaufforderungsfenster. Auf einem Macintosh und unter Linux ist dieses Fenster das Terminal. Einige Versionen von Linux und UNIX nennen dieses Fenster eine Shell.
Wie auch immer, in alten Zeiten konnten Sie ein Programm schreiben, das zusätzliche Informationen aufnahm, wenn Sie den Befehl zum Starten des Programms eingaben.
Wenn Sie MakeRandomNumsFile starten, geben Sie einige zusätzliche Informationen ein.Im obigen Bild gibt der Programmierer Java MakeRandomNumsFile ein, um das Programm
MakeRandomNumsFile
auszuführen. Aber der Programmierer folgt Java MakeRandomNumsFile mit zwei zusätzlichen Informationen: MyNumberedFile. txt und 5 . Wenn das Programm
MakeRandomNumsFile
ausgeführt wird, saugt das Programm zwei zusätzliche Informationen ab und verwendet sie, um das zu tun, was das Programm tun soll. Das Programm saugt
MyNumberedFile ab. txt 5
, aber bei einer anderen Gelegenheit könnte der Programmierer SomeStuff 28 oder BunchNumbers 2000 eingeben. Die zusätzlichen Informationen können bei jedem Ausführen des Programms unterschiedlich sein.
Die nächste Frage lautet: "Woher weiß ein Java-Programm, dass es jedes Mal zusätzliche Informationen verschlingen soll? "Seit Sie anfingen, mit Java zu arbeiten, haben Sie dieses
String args []
Geschäft im Header jeder
main
Methode gesehen. Nun, es ist höchste Zeit, herauszufinden, worum es geht. Der Parameter
args []
ist ein Array von
String
-Werten. Diese
String
-Werte werden als Befehlszeilenargumente bezeichnet.
Einige Programmierer schreiben
public static void main (String args [] )
und andere Programmierer schreiben
public static void main (String [] args)
In beiden Fällen ist
args
ein Array von
String
-Werten.
Befehlszeilenargumente in einem Java-Programm verwenden
Dieses Codebit zeigt Ihnen, wie Sie Befehlszeilenargumente verwenden.
So generieren Sie eine Datei mit Zahlen
Java importieren. Nutz. Zufällig;
importiert Java. io. DruckStream;
importiert Java. io. IOException;
public class MakeRandomNumsFile {
public static void main (Zeichenfolge args [] ) löst IOException aus {
Zufallsgenerator = new Random ();
if (Argumente.Länge <2) {
System. aus. println ("Usage: MakeRandomNumsFile-Dateinamennummer");
System. Ausgang (1);
}
PrintStream printOut = neuer PrintStream (args [0]);
int numLines = Ganzzahl. parseInt (args [1]);
für (int count = 1; count <= numLines; count ++) {
printOut. println (Generator. nextInt (10) + 1);
}
printOut. schließen();
}
}
Wenn ein bestimmtes Programm einige Befehlszeilenargumente erwartet, können Sie das Programm nicht so starten, wie Sie die meisten anderen normalen Programme starten würden. Die Art und Weise, wie Sie Befehlszeilenargumente an ein Programm übergeben, hängt von der IDE ab, die Sie verwenden - Eclipse, NetBeans oder was auch immer. Allmycode. com enthält Anweisungen zum Einfügen von Argumenten in Programme, die verschiedene IDEs verwenden.
Wenn der Code ausgeführt wird, erhält das Array
args
seine Werte. Mit dem oben gezeigten Lauf nimmt die Array-Komponente
args [0]
automatisch den Wert
"MyNumberedFile. Txt"
und
args [1]
wird automatisch
"5"
. So haben die Zuweisungsanweisungen des Programms die folgende Bedeutung:
PrintStream printOut = new PrintStream ("MyNumberedFile. Txt");
int numLines = Ganzzahl. parseInt ("5");
Das Programm erstellt eine Datei namens
MyNumberedFile. txt
und setzt
numLines
auf
5
. Später im Code erzeugt das Programm zufällig fünf Werte und gibt diese Werte in
MyNumberedFile ein. txt
. Ein Lauf des Programms gibt Ihnen dies.
Nach dem Ausführen des Codes finden Sie die neue Datei (
MyNumberedFile. Txt
) auf Ihrer Festplatte. Die Antwort hängt von vielen verschiedenen Dingen ab. Wenn Sie eine IDE mit Programmen verwenden, die in Projekte unterteilt sind, befindet sich die neue Datei irgendwo im Ordner des Projekts. Auf die eine oder andere Weise können Sie Listing 11-7 so ändern, dass ein vollständiger Pfadname angegeben wird - ein Name wie
"c: \ Benutzer \ MyName \ Dokumente \ MyNumberedFile. Txt"
oder
"/ Benutzer / MyName / Dokumente / MyNumberedFile. Txt"
.
Windows-Dateipfadnamen enthalten Backslash-Zeichen. Wenn Sie in Java einen Backslash innerhalb eines String-Literal mit doppelten Anführungszeichen angeben möchten, verwenden Sie stattdessen einen doppelten Backslash. Das ist warum "C: \ Benutzer \ MyName \ Dokumente \ MyNumberedFile. txt "enthält Backslash-Paare. Im Gegensatz dazu enthalten Dateipfade in den Linux- und Macintosh-Betriebssystemen Schrägstriche. Verwenden Sie nur einen Schrägstrich, um einen Schrägstrich in einem Java-String anzugeben.
Beachten Sie, wie jedes Befehlszeilenargument ein
String
Wert ist. Wenn Sie sich
args [1]
ansehen, sehen Sie nicht die Zahl 5 - Sie sehen die Zeichenfolge
"5"
mit einem Ziffernzeichen darin. Leider können Sie dieses
"5"
nicht zum Zählen verwenden. Um einen Wert
int
von
"5"
zu erhalten, müssen Sie die Methode
parseInt
anwenden.
Die
parseInt
-Methode befindet sich in einer Klasse namens Integer. Um also
parseInt
aufzurufen, müssen Sie dem Namen parseInt das Wort Integer voranstellen. Die
Integer
-Klasse verfügt über alle möglichen praktischen Methoden, um Dinge mit
int
-Werten auszuführen.
In Java ist Integer der Name einer Klasse und int ist der Name eines primitiven (einfachen) Typs. Die zwei Dinge sind verwandt, aber sie sind nicht dasselbe. Die
Integer
-Klasse verfügt über Methoden und andere Tools zum Umgang mit
int
-Werten.
Überprüfung der richtigen Anzahl von Befehlszeilenargumenten
Was passiert, wenn der Benutzer einen Fehler macht? Was passiert, wenn der Benutzer vergisst, die Nummer 5 in der ersten Zeile w einzugeben, wenn Sie
MakeRandomNumsFile
starten?
Dann weist der Computer
"MyNumberedFile.txt"
zu
args [0]
zu, aber er weist
args [1]
nichts zu. Das ist schlecht. Wenn der Computer jemals die Anweisung
int numLines = Integer erreicht. parseInt (args [1]);
Das Programm stürzt mit einer unfreundlichen
ArrayIndexOutOfBoundsException
ab.
Was machst du damit? Sie überprüfen die Länge des Arrays
args
. Sie vergleichen
args. Länge
mit
2
. Wenn das Array
args
weniger als zwei Komponenten enthält, zeigen Sie eine Meldung auf dem Bildschirm an und beenden das Programm.
Trotz der Überprüfung von
args. Länge
, der Code ist immer noch nicht crashsicher. Wenn der Benutzer fünf statt fünf eingibt, nimmt das Programm einen Sturzflug mit einer
NumberFormatException
vor. Das zweite Befehlszeilenargument darf kein Wort sein. Das Argument muss eine Zahl (und eine ganze Zahl) sein. Sie können Anweisungen hinzufügen, um den Code kugelsicherer zu machen.
Wenn Sie mit Befehlszeilenargumenten arbeiten, können Sie einen
String
-Wert mit einem Leerzeichen eingeben. Schließen Sie den Wert einfach in doppelte Anführungszeichen ein. Zum Beispiel können Sie den obigen Code mit den Argumenten
"My Big Fat File. Txt" 7
ausführen.