Kommandolinjeargumenter kan være en måte å spesifisere konfigurasjonsegenskaper for et program, og Java er ikke annerledes. I stedet for å klikke på et applikasjonsikon fra operativsystemet, kan du kjøre Java applikasjon fra et terminalvindu. Sammen med applikasjonsnavnet kan et antall argumenter følge som deretter føres til programmets startpunkt (dvs. hovedmetoden, i tilfelle Java).
For eksempel, NetBeans har et antall oppstartsparametere som kan sendes til applikasjonen når den kjøres fra et terminalvindu (f.eks.
angir en versjon av JDK som skal brukes i stedet for standard JDK tilknyttet NetBeans-applikasjonen).
Hovedmetoden
La oss undersøke hovedmetode for å se hvor argumentene som sendes til en applikasjon vises:
Kommandolinjeargumentene finner du i
kalt
La oss for eksempel vurdere et program som heter
hvis eneste handling er å skrive ut kommandolinjeargumentene som er gitt til den:
offentlig klasse CommandLineArgs {
public static void main (String [] args) {
// sjekk for å se om String-arrayet er tomt
if (args.length == 0)
{
System.out.println ("Det ble ikke gitt noen kommandolinjeargumenter!");
}
// For hver streng i strenggruppen
// skriv ut strengen.
for (Strengargument: args)
{
System.out.println (argument);
}
}
}
Syntaks for kommandolinjeargumenter
Java Runtime Engine (JRE) forventer at argumenter skal sendes etter en bestemt syntaks, slik:
java Programnavn verdi1 verdi2
Over påkaller "java" JRE, som blir fulgt av navnet på programmet du kaller. Disse blir fulgt av eventuelle argumenter for programmet. Det er ingen begrensning for antall argumenter et program kan ta, men rekkefølgen er kritisk. JRE passerer argumentene i den rekkefølgen de vises på kommandolinjen. Tenk for eksempel på dette kodebiten ovenfra:
offentlig klasse CommandLineArgs2 {
public static void main (String [] args) {
if (args.length == 0)
{
System.out.println ("Det ble ikke gitt noen kommandolinjeargumenter!");
}
Når argumenter sendes til et Java-program, er args [0] det første elementet i matrisen (verdi1 over), args [1] er det andre elementet (verdi2), og så videre. Koden args.length () definerer lengden på matrisen.
Passing Command-Line Arguments
I NetBeans kan vi sende kommandolinjeargumenter uten å måtte bygge applikasjonen og kjøre den fra et terminalvindu. Slik angir du kommandolinjeargumenter:
- Høyreklikk på prosjektmappen i
prosjekter
vindu. - Velg
Eiendommer
alternativet for å åpneProsjektegenskaper
vindu. - I
kategorier
listen til høyre, velgLøpe
- I
argumenter
tekstboks som vises, spesifiser kommandolinjeargumentene du vil gi til applikasjonen. For eksempel, hvis vi går innEple banan gulrot
iargumenter
tekstboks og kjørCommandLineArgs
programmet oppført over, vil vi få utdata:
Analyser kommandolinjeargumentene
Vanligvis sendes et kommandolinjeargument med litt informasjon om hva du skal gjøre med verdien som sendes. Argumentet som informerer applikasjonen hva argumentet er for har vanligvis en bindestrek eller to før navnet. For eksempel er NetBeans-eksemplet for oppstartsparameteren som spesifiserer JDK-banen
Dette betyr at du må analysere kommandolinjeargumentene for å finne ut hva du skal gjøre med verdiene. Det er flere Java-kommandolinjerammer for å analysere kommandolinjeargumenter. Eller du kan skrive en enkel kommandolinjeparser hvis argumentene du trenger å føre er ikke så mange:
De kode ovenfor skriver begge ut argumentene eller legger dem sammen hvis de er heltall. For eksempel vil dette kommandolinjeargumentet legge til tallene:
java CommandLineArgs -numre 11 22 33 44