Hem Personliga finanser Kommandot Linjeargument i Java - dummies

Kommandot Linjeargument i Java - dummies

Innehållsförteckning:

Video: vigenere (C) 2024

Video: vigenere (C) 2024
Anonim

En gång i tiden använde de flesta Java-programmerare ett textbaserat utvecklingsgränssnitt. De skrev ett kommando i ett snyggt fönster, vanligtvis med vit text på en svart bakgrund.

Så tråkig!

Det snygga fönstret går av de olika namnen, beroende på vilken typ av operativsystem du använder. I Windows är ett textfönster av detta slag ett kommandotolken. På en Macintosh och i Linux är detta fönster -terminalen. Vissa versioner av Linux och UNIX kallar detta fönster ett skal.

Hur som helst, tillbaka i antiken, kan du skriva ett program som suger upp extra information när du skrev kommandot för att starta programmet.

När du startar MakeRandomNumsFile skriver du lite extra information.

I bilden ovan programmerar programmeraren java MakeRandomNumsFile för att köra programmet MakeRandomNumsFile . Men programmeraren följer java MakeRandomNumsFile med två extra bitar av information: MyNumberedFile. txt och 5 . När programmet MakeRandomNumsFile körs, suger programmet två extra bitar av information och använder dem för att göra vad programet ska göra. Programmet suger upp MyNumberedFile. txt 5 , men vid ett annat tillfälle kan programmeraren skriva SomeStuff 28 eller BunchONumbers 2000 . Den extra informationen kan vara annorlunda varje gång du kör programmet.

Nästa fråga är, "Hur vet ett Java-program att det ska snabba upp extra information varje gång den körs? "Sedan du började arbeta med Java har du sett detta Strings args [] företag i huvudet på varje main -metod. Tja, det är hög tid att du fick reda på vad det handlar om. Parametern args [] är en rad Sträng -värden. Dessa Sträng -värden kallas kommandoradsargument.

och andra programmerare skriver

statisk statisk tomt huvud (String ) []

args)

Hur som helst, args är en uppsättning av

Sträng -värden. Använda kommandoradsargument i ett Java-program Denna bit kod visar hur du använder kommandoradsargument. Så här skapar du en fil med nummer

import java. util. Slumpmässig;

importera java. io. Printstream;

importera java. io. IOException;

Public Class MakeRandomNumsFile {

Offentlig statisk tomt huvud (

String args []

) slänger IOException {

Slumpmässig generator = nytt slumpmässigt (); om (args.längd <2) { System. ut. println ("Användning: MakeRandomNumsFile filnamn nummer");

System. exit (1);

}

PrintStream printOut = ny PrintStream (args [0]);

int numLines = heltal. parseInt (args [1]);

för (int count = 1; count <= numLines; count ++) {

printOut. println (generator. nextInt (10) + 1);

}

utskrift. stänga();

}

}

Om ett visst program förväntar sig några kommandoradsargument kan du inte starta programmet på samma sätt som du skulle starta de flesta andra normala program. Hur du matar kommandoradsargument till ett program beror på den IDE du använder - Eclipse, NetBeans eller vad som helst. Allmycode. com har instruktioner för att mata argument till program med olika IDE.

När koden börjar köra, får metoden

args

sina värden. Med körningen som visas i bilden ovan tar arraykomponenten

args [0] automatiskt värdet "MyNumberedFile.txt" och args [1] blir automatiskt "5" . Så slutar programmets uppgifter om uppdrag att ha följande betydelse: PrintStream printOut = new PrintStream ("MyNumberedFile. Txt"); int numLines = heltal. parseInt ("5"); Programmet skapar en fil med namnet

MyNumberedFile. txt

och anger

numLines till 5 . Så senare i koden genererar programmet slumpmässigt fem värden och sätter dessa värden i MyNumberedFile. txt . En köra av programmet ger dig detta. När du kör koden, var hittar du den nya filen ( MyNumberedFile.txt ) på din hårddisk? Svaret beror på många olika saker. Om du använder en IDE med program uppdelade i projekt, så är den nya filen någonstans i projektets mapp. På något sätt kan du ändra Listning 11-7 för att ange ett fullständigt söknamn - ett namn som

"c: \ Användare \ MyName \ Documents \ MyNumberedFile.txt" eller "/ Användare / MyName / Documents / MyNumberedFile. Txt" . I Windows innehåller filvägsnamn backslash-tecken. Och i Java, när du vill ange en backslash inuti en dubbelvitat String bokstavlig, använder du en dubbel backslash istället. Det är därför "c: \ Användare \ MyName \ Documents \ MyNumberedFile. txt "innehåller par backslashes. Däremot innehåller filvägar i operativsystemen Linux och Macintosh framåt snedstreck. Om du vill ange ett snedstreck framåt i en Java-sträng, använd bara ett snedstreck framåt. Lägg märke till hur varje kommandoradsargument är ett värde på Sträng

. När du tittar på

args [1] ser du inte numret 5 - du ser strängen "5" med ett siffertecken i det. Tyvärr kan du inte använda det "5" för att göra några räkningar. För att få ett värde int från "5" måste du använda metoden parseInt . Metoden parseInt lever i en klass med namnet

Integer. Så, för att ringa parseInt, förordar du namnet parseInt med ordet Integer. Klassen Heltal har alla typer av praktiska metoder för att göra saker med int värden. I Java är integer namnet på en klass, och int är namnet på en primitiv (enkel) typ. De två sakerna är relaterade, men de är inte samma. Klassen Integer har metoder och andra verktyg för att hantera

int -värden. Kontrollerar rätt antal kommandoradsargument Vad händer om användaren gör ett misstag? Vad händer om användaren glömmer att skriva siffran 5

på den första raden

w hönan du startar MakeRandomNumsFile ? Då tilldelas datorn "MyNumberedFile.txt" till

args [0] , men den tilldelar inte något till args [1] . Det här är dåligt. Om datorn någonsin når uttalandet int numLines = Integer. parseInt (args [1]); programmet kraschar med en ovänlig ArrayIndexOutOfBoundsException

.

Vad gör du om detta? Du kontrollerar längden på arrayen args . Du jämför

args. längd med 2 . Om args array har färre än två komponenter, visar du ett meddelande på skärmen och avslutar programmet. Koden berättar hur du kör den. Trots kontrollen av args. längd

, är koden fortfarande inte krasäker. Om användaren skriver fem istället för 5, tar programmet ett nivån med en

NumberFormatException . Det andra kommandoradsargumentet kan inte vara ett ord. Argumentet måste vara ett tal (och ett heltal, vid det). Du kan lägga till uttalanden för att göra koden mer kollisionsskyddad. När du arbetar med kommandoradsargument kan du ange ett värde String med ett tomt utrymme i det. Lägg bara in värdet i dubbla citattecken. Till exempel kan du köra koden ovan med argument

"My Big Fat File. Txt" 7 .

Kommandot Linjeargument i Java - dummies

Redaktörens val

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

När du utvecklar e-postmarknadsföring innehåll, överväga hur din publik kommer att uppleva dina avsikter. E-postmeddelanden ger större mening åt dina framtidsutsikter och kunder när innehållet du skapar och levererar är knutet samman under kända teman. När din tid är begränsad kan du bli frestad att skapa e-postinnehåll som passar ditt schema bättre ...

Nya formulärinmatningstyper i HTML5 - dummies

Nya formulärinmatningstyper i HTML5 - dummies

HTML-formulär är centrerade kring det ödmjuka men flexibla inmatningselementet . HTML5 lägger till ett antal väldigt användbara former av inmatning som hjälper till att göra HTML till ett mer modernt användargränssnitt. Även om stöd för dessa taggar inte är universellt är det säkert att börja använda dem nu. Varje webbläsare (även IE6) som inte förstår den avancerade ...

Utföra visuell designtest på en ny webbplats - dummies

Utföra visuell designtest på en ny webbplats - dummies

Det visuella designteamet för en webbplats kan skapa några olika "look and feel" -alternativ och testa dem med användare. Den här designen kallas perfekt för att passera en hemsida och en inre eller undersida av din webbplats, men de är inte 100 procent korrekta när det gäller ...

Redaktörens val

Objektiv till dina digitala SLR-dummies

Objektiv till dina digitala SLR-dummies

Zoomlinser är inte den enda typen av linser som är tillgängliga för din dSLR . Du borde veta hur de skiljer sig från de andra alternativen. Här är några av alternativen till zoomlinser i allmänhet och vanliga zoomlinser i synnerhet. Prime-objektiv En primärlins har en fast brännvidd. En lins med fast fokusering ...

Hur man skapar bra belysning för din digitala fotografi - dummies

Hur man skapar bra belysning för din digitala fotografi - dummies

Ja, du kan återskapa bra belysning om du vet vad du gör. Och ingenting kan förstöra ett foto snabbare än dålig belysning. Du kan göra många förbättringar till ett utmanande ämne helt enkelt genom att använda bra belysningsteknik. Din farbrors skalliga huvud, en tonåring som är mindre än perfekt, en hård upplyst strandplats, en droppe ...

ÖKa bildförstoring med telekonverterare - dummies

ÖKa bildförstoring med telekonverterare - dummies

En telekonverter är en sekundärlins som du placerar mellan din lins och kamerokroppen (precis som förlängningsröret). En telekonverter tar emot bilden som skapats av din lins och ger en förstorad version av den till kamerans digitala sensor. Detta kan vara ett användbart verktyg i makrofotografering men kan också vara ...

Redaktörens val

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Trådlösa arbetsstationer har massor av säkerhetsproblem och kan vara inriktade på hackar - från svaga lösenord till opatchade säkerhetshål till lagring av WEP- och WPA-krypteringsnycklar lokalt. De flesta av de kända trådlösa klientens sårbarheter har blivit patchade av sina respektive leverantörer, men du vet aldrig om alla dina trådlösa system är ...

Grundläggande Mac Network Settings - dummies

Grundläggande Mac Network Settings - dummies

De flesta nätverksinställningarna på en Mac är automatiska. Om du föredrar kan du titta på och ändra standardnätverksinställningarna genom att följa dessa steg: