Innholdsfortegnelse:
- Denne delen av koden viser hvordan du bruker kommandolinjeparametere.
- Hva skjer hvis brukeren gjør en feil? Hva om brukeren glemmer å skrive inn tallet
De fleste Java-programmerere brukte en gang en tekstbasert utviklingsgrensesnitt. De skrev en kommando i et glatt utseende, vanligvis med hvit tekst på en svart bakgrunn.
Det glatt utseende vinduet går av de forskjellige navnene, avhengig av hvilket operativsystem du bruker. I Windows er et tekstvindu av denne typen et ledetekstvindu. På en Macintosh og i Linux er dette vinduet -terminalen. Noen versjoner av Linux og UNIX kaller dette vinduet et skall.
Uansett, i gamle tider, kan du skrive et program som suget opp ekstra informasjon når du skrev kommandoen for å starte programmet.
I bildet ovenfor programmerer programmøren java MakeRandomNumsFile for å kjøre programmet
MakeRandomNumsFile
. Men programmereren følger java MakeRandomNumsFile med to ekstra biter av informasjon: MyNumberedFile. txt og 5 . Når programmet
MakeRandomNumsFile
kjører, suger programmet to ekstra deler av informasjonen og bruker dem til å gjøre hva programmet må gjøre. Programmet suger opp
MyNumberedFile. txt 5
, men ved en annen anledning kan programmereren skrive SomeStuff 28 eller BunchONumbers 2000 . Den ekstra informasjonen kan være forskjellig hver gang du kjører programmet.
Det neste spørsmålet er, "Hvordan kjenner et Java-program at det skal knuse opp ekstra informasjon hver gang den går? "Siden du først begynte å jobbe med Java, har du se denne
String args []
virksomheten i toppteksten til hver
main
-metode. Vel, det er på tide at du fant ut hva det handler om. Parameteren
args []
er en rekke
Streng
-verdier. Disse
Streng
-verdiene kalles kommandolinjeparametere.
Noen programmerere skriver
offentlig statisk tomgangshoved (String args [] )
og andre programmerere skriver
[] args) Uansett,
args
er en rekke
Streng
-verdier.
Bruke kommandolinjeparametere i et Java-program
Denne delen av koden viser hvordan du bruker kommandolinjeparametere.
Slik genererer du en fil med tall
importer java. util. Tilfeldig;
importer java. io. Print;
importer java. io. IOException;
offentlig klasse MakeRandomNumsFile {
offentlig statisk tomt hoved (
String args [] ) kaster IOException { Tilfeldig generator = nytt Tilfeldig ();
hvis (args.lengde <2) {
System. ute. println ("Bruk: MakeRandomNumsFile filnavnnummer");
System. exit (1);
}
PrintStream printOut = ny PrintStream (args [0]);
int numLines = helhet. parseInt (args [1]);
for (int count = 1; count <= numLines; count ++) {
printOut. println (generator. nextInt (10) + 1);
}
utskrift. Lukk();
}
}
Hvis et bestemt program forventer noen kommandolinje argumenter, kan du ikke starte programmet på samme måte som du vil starte de fleste andre normale programmer. Måten du legger på kommandolinjeparametere til et program, avhenger av IDE du bruker - Eclipse, NetBeans, eller hva som helst. Allmycode. com har instruksjoner for å mate argumenter til programmer ved hjelp av ulike IDEer.
Når koden begynner å kjøre, får
args
-gruppen sine verdier. Med kjøringen som vises i bildet over, tar arraykomponenten
args [0]
automatisk verdien
"MyNumberedFile.txt"
og
args [1]
blir automatisk
"5"
. Så har programoppgaveoppgavene følgende betydning:
PrintStream printOut = new PrintStream ("MyNumberedFile. Txt");
int numLines = helhet. parseInt ("5");
Programmet oppretter en fil med navnet
MyNumberedFile. txt
og setter
tallene
til
5
. Så senere i koden, genererer programmet tilfeldig fem verdier og setter disse verdiene i
MyNumberedFile. txt
. En runde av programmet gir deg dette.
Når du har kjørt koden, hvor finner du den nye filen (
MyNumberedFile.txt
) på harddisken din? Svaret avhenger av mange forskjellige ting. Hvis du bruker en IDE med programmer delt inn i prosjekter, så er den nye filen et sted i prosjektets mappe. På en eller annen måte kan du endre Listing 11-7 for å angi et fullt stinavn - et navn som
"c: \ Brukere \ MyName \ Documents \ MyNumberedFile.txt"
eller
"/ Brukere / MyName / Documents / MyNumberedFile. Txt"
.
I Windows inneholder filbanenavn tilbakestrekstegn. Og i Java, når du vil indikere en tilbakeslag i en dobbelkvitert Strings bokstavlig, bruker du en dobbel tilbakeslag i stedet. Det er derfor "c: \ Brukere \ MyName \ Documents \ MyNumberedFile. txt "inneholder par av tilbakeslag. I kontrast inneholder filbaner i Linux- og Macintosh-operativsystemene fremoverstreker. Hvis du vil indikere et fremoverstrekk i en Java-streng, bruker du bare en fremoverstreke.
Legg merke til hvordan hvert kommandolinjeprøving er en verdi på
Streng
. Når du ser på
args [1]
, ser du ikke tallet 5 - du ser strengen
"5"
med et siffertegn i den. Dessverre kan du ikke bruke det
"5"
for å gjøre noen teller. For å få en
int
verdi fra
"5"
må du bruke metoden
parseInt
.
Metoden
parseInt
lever i en klasse med navnet
Integer. Så for å ringe parseInt
forordrer du navnet
parseInt med ordet Integer. Klassen Integer
har alle slags praktiske metoder for å gjøre ting med
int
verdier.
I Java er Integer navnet på en klasse, og int er navnet på en primitiv (enkel) type. De to tingene er relaterte, men de er ikke det samme. Klassen
Integer
har metoder og andre verktøy for å håndtere
int
verdier.
Kontroller for riktig antall kommandolinjeparamenter
Hva skjer hvis brukeren gjør en feil? Hva om brukeren glemmer å skrive inn tallet
5 på den første linjen w henna du starter MakeRandomNumsFile
?
Da tilordner datamaskinen
"MyNumberedFile.txt"
til
args [0]
, men tilordner ikke noe til
args [1]
. Dette er dårlig. Hvis datamaskinen noensinne når setningen
int numLines = Integer. parseInt (args [1]);
programmet krasjer med en unfriendly
ArrayIndexOutOfBoundsException
.
Hva gjør du med dette? Du kontrollerer lengden på
args
-armen. Du sammenligner
args. Lengden
til
2
. Hvis
args array
har færre enn to komponenter, viser du en melding på skjermen og går ut av programmet.
Koden forteller deg hvordan du kjører den.
args. lengde
, er koden fortsatt ikke krasjbestandig. Hvis brukeren skriver fem i stedet for 5, tar programmet en nosedive med en
NumberFormatException
. Det andre kommandolinjeparametret kan ikke være et ord. Argumentet må være et tall (og et helt tall, ved det). Du kan legge til uttalelser for å gjøre koden mer bulletproof.
Når du arbeider med kommandolinjeparametre, kan du angi en
Streng
-verdi med et tomt mellomrom i det. Bare legg inn verdien i dobbeltkvitemerker. For eksempel kan du kjøre koden ovenfor med argumenter
"My Big Fat File. Txt" 7
.
