Indholdsfortegnelse:
De fleste Java-programmerere brugte engang en tekstbaseret udviklingsgrænseflade. De skrev en kommando i et almindeligt udseende vindue, normalt med hvid tekst på en sort baggrund.
Hvor kedelig!Det glatte vindue går efter de forskellige navne afhængigt af hvilket operativsystem du bruger. I Windows er et tekstvindue af denne type et kommandopromptvindue. På en Macintosh og i Linux er dette vindue -terminalen. Nogle versioner af Linux og UNIX kalder dette vindue en shell.
Uanset i gamle tider kunne du skrive et program, der sugede op ekstra information, da du skrev kommandoen for at starte programmet.
Når du starter MakeRandomNumsFile, skriver du nogle ekstra oplysninger.I billedet ovenfor programmerer programmøren java MakeRandomNumsFile for at køre programmet
MakeRandomNumsFile
. Men programmøren følger java MakeRandomNumsFile med to ekstra stykker information: MyNumberedFile. txt og 5 . Når programmet
MakeRandomNumsFile
kører, suger programmet to ekstra stykker information og bruger dem til at gøre, hvad programmet skal gøre. Programmet suger op
MyNumberedFile. txt 5
, men i en anden lejlighed kan programmereren skrive NogleStuff 28 eller BunchONumbers 2000 . De ekstra oplysninger kan være forskellige hver gang du kører programmet.
Det næste spørgsmål er, "Hvordan ved et Java-program, at det skal smøre ekstra information hver gang det løber? "Siden du først begyndte at arbejde med Java, har du set denne
String args []
virksomhed i overskriften for hver
main
metode. Nå, det er på høje tid, du fandt ud af, hvad det handler om. Parameteren
args []
er en række af
String
værdier. Disse
String
værdier kaldes kommandolinjeparametre.
Nogle programmører skriver
offentlig statisk tomgangshoved (String args [] )
og andre programmører skriver
offentlig statisk tomgangshoved (String [] args)
Enten måde,
args
er en række af
String
værdier.
Brug af kommandolinjearbejder i et Java-program
Denne bit kode viser dig, hvordan du bruger kommandolinjeparametre.
Sådan genereres en fil med tal
import java. util. Tilfældig;
importer java. io. PrintStream;
importer java. io. IOException;
offentlig klasse MakeRandomNumsFile {
offentlig statisk tomt hoved (String args [] ) kaster IOException {
Tilfældig generator = ny Tilfældig ();
hvis (args.længde <2) {
System. ud. println ("Anvendelse: MakeRandomNumsFile filnavn nummer");
System. exit (1);
}
PrintStream printOut = nyt PrintStream (args [0]);
int numLines = Integer. parseInt (args [1]);
for (int count = 1; count <= numLines; count ++) {
printOut. println (generator. nextInt (10) + 1);
}
udskrift. tæt();
}
}
Hvis et bestemt program forventer nogle kommandolinjeparametre, kan du ikke starte programmet på samme måde som du ville starte de fleste af de andre normale programmer. Den måde, du føder kommandolinjearguder til et program afhænger af den IDE, du bruger - Eclipse, NetBeans eller hvad som helst. Allmycode. com har instruktioner til fodring af argumenter til programmer ved hjælp af forskellige IDE'er.
Når koden begynder at køre, får
args
-gruppen sine værdier. Med kørslen vist i billedet ovenfor tager array-komponenten
args [0]
automatisk værdien
"MyNumberedFile.txt"
og
args [1]
bliver automatisk
"5"
. Så slutter programmets opgaveopgørelser med følgende betydning:
PrintStream printOut = new PrintStream ("MyNumberedFile. Txt");
int numLines = Integer. parseInt ("5");
Programmet opretter en fil med navnet
MyNumberedFile. txt
og sætter
numLines
til
5
. Så senere i koden genererer programmet tilfældigt fem værdier og sætter disse værdier i
MyNumberedFile. txt
. Én gang i programmet giver dig dette.
Når du kører koden, hvor kan du finde den nye fil (
MyNumberedFile. Txt
) på din harddisk? Svaret afhænger af mange forskellige ting. Hvis du bruger en IDE med programmer opdelt i projekter, så er den nye fil et sted i projektets mappe. På en eller anden måde kan du ændre Listing 11-7 for at angive et fuldt stinavn - et navn som
"c: \ Brugere \ MyName \ Dokumenter \ MyNumberedFile.txt"
eller
"/ Brugere / MyName / Documents / MyNumberedFile. Txt"
.
I Windows indeholder filnavne navne tegn. Og i Java, når du vil angive en backslash inde i en dobbelt-citeret String-bogstav, bruger du en dobbelt tilbageslag i stedet. Det er derfor "c: \ Brugere \ MyName \ Dokumenter \ MyNumberedFile. txt "indeholder par af tilbageslag. I modsætning hertil indeholder filstier i Linux- og Macintosh-operativsystemerne skråstreger. Hvis du vil angive en fremadrettet skråstreg i en Java-streng, skal du kun bruge et enkelt skråstreg.
Bemærk hvordan hvert kommandolinjeprincip er en værdi på
Streng
. Når du ser på
args [1]
, kan du ikke se nummeret 5 - du ser strenge
"5"
med et ciffertegn i det. Desværre kan du ikke bruge det
"5"
til at tælle. For at få en
int
værdi fra
"5"
, skal du anvende metoden
parseInt
.
Metoden
parseInt
lever i en klasse ved navn Integer. Så for at kalde
parseInt
forordes navnet parseInt med ordet Integer. Klassen
Integer
har alle slags praktiske metoder til at gøre ting med
int
værdier.
I Java er Integer navnet på en klasse, og int er navnet på en primitiv (enkel) type. De to ting er relaterede, men de er ikke de samme. Klassen
Integer
har metoder og andre værktøjer til at håndtere
int
værdier.
Kontrol af det rigtige antal kommandolinjeparamenter
Hvad sker der, hvis brugeren begår en fejl? Hvad hvis brugeren glemmer at skrive nummeret 5 på den første linje w høne du starter
MakeRandomNumsFile
?
Derefter tildeler computeren
"MyNumberedFile.txt"
til
args [0]
, men den tildeler ikke noget til
args [1]
. Dette er dårligt. Hvis computeren nogensinde når sætningen
int numLines = Integer. parseInt (args [1]);
programmet kolliderer med en uvenlig
ArrayIndexOutOfBoundsException
.
Hvad gør du ved dette? Du kontrollerer længden af
args
array. Du sammenligner
args. længde
med
2
. Hvis
args array
har færre end to komponenter, viser du en besked på skærmen og afslutter programmet.
Til trods for kontrollen af
args. længde
, er koden stadig ikke kollisionssikker. Hvis brugeren skriver fem i stedet for 5, tager programmet en nosedive med en
NumberFormatException
. Det andet kommandolinjeprincip kan ikke være et ord. Argumentet skal være et tal (og et helt tal på det). Du kan tilføje udsagn til at gøre koden mere bulletproof.
Når du arbejder med kommandolinjeparametre, kan du indtaste en
String
-værdi med et tomt rum i det. Du skal blot vedhæfte værdien i dobbeltbetegnelser. For eksempel kan du køre koden ovenfor med argumenter
"My Big Fat File. Txt" 7
.