Argumentele din linia de comandă pot fi un mod de a specifica proprietățile de configurare pentru o aplicație, iar Java nu este diferit. În loc să faceți clic pe o pictogramă a aplicației din sistemul de operare, puteți rula Java aplicație dintr-o fereastră de terminal. Alături de numele aplicației, pot fi urmate o serie de argumente care sunt apoi transmise la punctul de plecare al aplicației (adică, metoda principală, în cazul Java).
De exemplu, NetBeans are o serie de parametri de pornire care pot fi transmise aplicației atunci când este rulată dintr-o fereastră de terminal (de ex.,
specifică o versiune a JDK care trebuie utilizată în loc de JDK implicit asociată cu aplicația NetBeans).
Metoda principală
Să examinăm metoda principală pentru a vedea unde apar argumentele transmise unei aplicații:
Argumentele din linia de comandă pot fi găsite în
denumit
De exemplu, să luăm în considerare o aplicație numită
a cărei singură acțiune este de a tipări argumentele din linia de comandă care i-au fost transmise:
public class CommandLineArgs {
public static void main (String [] args) {
// verificați pentru a vedea dacă tabelul String este gol
if (lungimea args. == 0)
{
System.out.println ("Nu au fost transmise argumente de linie de comandă!");
}
// Pentru fiecare șir din tabloul String
// tipăriți șirul.
for (Argumentul șirului: args)
{
System.out.println (argument);
}
}
}
Sintaxa argumentelor liniei de comandă
Java Runtime Engine (JRE) se așteaptă ca argumentele să fie transmise în urma unei anumite sintaxe, ca atare:
java ProgramName value1 value2
Mai sus, „java” invocă JRE, care este urmat de numele programului pe care îl chemați. Acestea sunt urmate de orice argumente la program. Nu există nicio limită la numărul de argumente pe care un program le poate lua, dar comanda este critică. JRE transmite argumentele în ordinea în care apar pe linia de comandă. De exemplu, luați în considerare acest fragment de cod de sus:
public class CommandLineArgs2 {
public static void main (String [] args) {
if (lungimea args. == 0)
{
System.out.println ("Nu au fost transmise argumente de linie de comandă!");
}
Când argumentele sunt transmise unui program Java, args [0] este primul element al tabloului (valoarea1 de mai sus), args [1] este al doilea element (valoare2) și așa mai departe. Codul args.length () definește lungimea tabloului.
Trecerea argumentelor din linia de comandă
În NetBeans, putem trece argumente din linia de comandă fără a fi nevoie să construim aplicația și să o rulăm dintr-o fereastră de terminal. Pentru a specifica argumentele din linia de comandă:
- Faceți clic dreapta pe folderul de proiect din
proiecte
fereastră. - Alege
Proprietăți
opțiune de deschisProprietățile proiectului
fereastră. - În
Categorii
lista din partea dreaptă, alegețiAlerga
- În
Argumente
caseta de text care apare, specificați argumentele din linia de comandă pe care doriți să le transmiteți aplicației. De exemplu, dacă intrămMorcovul cu banane de mere
înArgumente
caseta de text și rulațiCommandLineArgs
program enumerat mai sus, vom obține rezultatul:
Analizarea argumentelor din linia de comandă
De obicei, un argument de linie de comandă este transmis cu câteva informații despre ce să facă cu valoarea care este trecută. Argumentul care informează cererea despre ce este argumentul are de obicei o cratime sau două înainte de numele acesteia. De exemplu, exemplul NetBeans pentru parametrul de pornire care specifică calea JDK este
Aceasta înseamnă că va trebui să analizați argumentele din linia de comandă pentru a vă da seama ce să faceți cu valorile. Există mai multe cadre Java de linii de comandă pentru analizarea argumentelor din linia de comandă. Sau puteți scrie un analizor simplu de linie de comandă dacă argumentele pe care trebuie să le transmiteți nu sunt chiar atât de multe:
cod de mai sus tipărește argumentele sau le adaugă împreună dacă sunt numere întregi. De exemplu, acest argument de linie de comandă ar adăuga numerele:
java CommandLineArgs -numerele 11 22 33 44