Zmienne środowiskowe, a Java – odczytywanie zmiennych środowiskowych

Kwestia odczytu zmiennych środowiskowych w Javie, nie jest tak oczywistą sprawą, jak by się mogło wydawać. Wynika to z tego, iż Java jest platformą wielo-systemową, a zmienne środowiskowe nie należą, wbrew pozorom, do standardu przestrzeganego w każdym systemie operacyjnym. Dodatkowo, dochodzi kwestia rozmiaru liter w nazwach zmiennych środowiskowych oraz nawet samego nazywania poszczególnych zmiennych środowiskowych w różnych wersjach OSów.

Sam odczyt zmiennych środowiskowych, w różnych wersjach JDK może różnie działać. Właściwie to w wersjach przed JDK 1.5 może nie działać w ogóle. Zawsze więc należy sprawdzić dokładnie, jak się sprawa zmiennych środowiskowych ma w aktualnie stosowanym JDK oraz systemie operacyjnym, na który przeznaczona jest pisana aplikacja.

Poniżej przedstawiam dwa sposoby odczytania przykładowej zmiennej środowiskowej. UWAGA: Proszę zwrócić uwagę na wielkość liter w nazwie przykładowej zmiennej środowiskowej, gdyż nie jest na (przynajmniej na moim OSie) przypadkowe.

System.out.println( System.getenv("PATH") );

Powyższy kod, bezpośrednio odczytuje podaną w argumencie zmienną środowiskową i zwraca ją jako String.

Map<String, String> m = System.getenv();
System.out.println( m.get("Path") );

Powyższym kod, najpierw pobiera Mapę wszystkich zmiennych środowiskowych, a następnie wyciąga z niej tą, która nas akuratnie interesuje.