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).
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);
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.
Î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ă:
proiectefereastră.
Proprietățiopțiune de deschis
Proprietățile proiectuluifereastră.
Categoriilista din partea dreaptă, alegeți
Alerga
Argumentecaseta 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
Argumentecaseta de text și rulați
CommandLineArgsprogram enumerat mai sus, vom obține rezultatul:
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