Utilizarea argumentelor de linie de comandă într-o aplicație Java

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 aplicația Java dintr-o fereastră de terminal. Alături de numele aplicației, se pot urmări 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-ul, care este urmat de numele programului pe care îl sună. 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ă:

  1. Faceți clic dreapta pe folderul de proiect din
    proiecte
    fereastră.
  2. Alege
    Proprietăți
    opțiune de deschis 
    Proprietățile proiectului
    fereastră. 
  3. În
    Categorii
    lista din partea dreaptă, alegeți
    Alerga
  4. Î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ăm
    Morcovul cu banane de mere
    în
    Argumente
    caseta de text și rulați
    CommandLineArgs
    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 atât de multe:

Codul 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