Setare variabile de mediu (environment variables) in Windows 7 pentru Java

3 comments - This post in english

Variabilele de mediu (environment variables) sunt utilizate de catre sistemul de operare pentru a salva setari (valori predefinite, locatii ale unor resurse) care sa fie utilizate de procese Windows sau lansate de utilizator.
Aceste variabile de mediu sunt de 2 tipuri:

  • variabile utilizator ce sunt specifice unui anumit cont utilizator din Windows; vor fi vizibile doar daca accesul in Windows se face prin acel cont;
  • variabile de sistem (system variables) vizibile intotdeauna pe sistemul respectiv, indiferent de contul de utilizator folosit.

Chiar daca aceste variabile sunt de obicei definite si initializate automat la instalarea sistemului sau a altor aplicatii, exista situatii in care utilizatorul trebuie sa le defineasca pentru a le pune la dispozitia unor aplicatii.

Scenariul luat in considerare este setarea variabilelor de sistem pentru a permite compilarea si executia de aplicatii Java din linia de comanda (command prompt) sau prin utilizarea unui IDE, cum ar fi Eclipse. Prin instalarea SDK-ului de Java, variabilele de sistem cu privire la locatia executabilelor (compilator,masina virtuala) nu sunt definite sau initializate automat.

Testarea lor se face prin deschiderea command prompt-ului (Start –> cmd) si lansarea compilatorului cu comanda

C:\Users\Catalin>javac.exe

Daca nu exista variabile de sistem care sa indice sistemului unde sa caute acest executabil se va primi o eroare de tipul

'javac' is not recognized as an internal or external command,
operable program or batch file.

Solutia este data de setarea variabilelor de sistem JAVA_HOME, PATH si CLASSPATH:

  1. Se deschide Control Panel –> System or Security –> System; acelasi lucru se poate face prin Click-Dreapta pe MyComputer si se alege Properties
System window in Windows 7

System window in Windows 7

2.   Se alege optiunea Advanced System Settings

System properties window in Windows

System properties window in Windows

3.   Se alege optiunea Environment variables

Environment variables in Windows

Environment variables in Windows

4.   Pentru sectiunea System variables se alege New

5.  Se defineste numele, JAVA_HOME si valoarea variabilei, C:\Program Files\Java\jdk1.6.0_16 (pentru acest exemplu a fost instalat JDK versiunea 1.6.0 in C:\Program Files\Java\jdk1.6.0_16; daca este nevoie, valoare se modifica pentru a reflecta situatia reala)

New system variable

New system variable

6.    Se insereaza o noua variabile de sistem cu numele CLASSPATH si valoarea %JAVA_HOME%\jre\lib

7.    Pentru variabila PATH, daca aceasta deja exista, se selecteaza si se alege optiunea Edit; in editor se adauga valoare ; %JAVA_HOME%\bin (valoarea noua se separa de cele existente prin punct si virgula – ;)

Testarea lor se face prin deschiderea unei noi ferestre de command prompt (Start –> cmd) si lansarea compilatorului cu comanda:

C:\Users\Catalin>javac
Usage: javac
where possible options include:
  -g                         Generate all debugging info
...

sau prin comenzile:

C:\Users\Catalin>echo %CLASSPATH%
C:\Program Files\Java\jdk1.6.0_16\jre\lib
 
C:\Users\Catalin>echo %JAVA_HOME%
C:\Program Files\Java\jdk1.6.0_16
 
C:\Users\Catalin>echo %PATH%

8. Se restarteaza sistemul.

, ,


  1. #1 by cineva on December 6th, 2013

    o cunostinta mi-a spus ca orice as face sa nu schimb nimic la enviromment variables. are ceva daca schimb ceva pe acolo(sunt incepator)

    • #2 by Catalin on January 6th, 2014

      Salut,

      Daca nu esti atent poti sa stergi din greseala variabilele pentru ale aplicatii si atunci acestea nu s-ar mai executa corect. Atata timp cat nu modifici (Edit) sau stergi (Delete) variabile existente, este ok.
      O alta solutie, mai sigura, este sa instalezi NetBeans. Cred ca acesta isi seteaza singur variabilele de sistem pentru Java. Dupa, poti sa folosesti compilatorul din linia de comanda.

      In final, foarte rar se intampla sa scrii programe Java in linia de comanda. Poate doar Hello World. Articolul are rolul de a evidentia care sunt instrumentele de care ai nevoie pentru a scrie si rula programe Java. Pentru eficienta se foloseste fie NetBeans fie Eclipse.

(will not be published)