[Java] Environment variables

Pagina: 1
Acties:

  • Deddiekoel
  • Registratie: Maart 2000
  • Laatst online: 12-11-2025

Deddiekoel

Gadget nerd

Topicstarter
Is het mogelijk om de environment variables van Windows uit te lezen in Java?

Ik heb wat rond gezocht maar het enige wat ik heb gevonden zegt dat ik eerst de variabelen via SET moet instellen. Is er ook een manier waarop dit niet hoeft?

Verlanglijstje: Switch 2, PS5 Pro Most wanted: Switch 2


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Je kunt natuurlijk altijd vals spelen door Runtime.exec("SET") aan te roepen.


Als je alleen set intiept op de console krijg je alle environmentvariabelen te zien + hun waardes. Als set VARIABLE aanroept (bv set JAVA_HOME) krijg je de waarde te zien van alleen die variable.

[ Voor 59% gewijzigd door Alarmnummer op 23-09-2004 13:52 ]


  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Om één of andere reden is de System.getenv() method uit de laatste jdk gehaald, maar ze hebben er in de 5 terug wel ingestopt :)

ENKEL VOOR 1.5 oftewel 5.0:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.*;

public class Test {
 public static void main(String args[]) {
   // just one
   System.out.println("PATH = " + System.getenv("PATH"));

   // all of them
   Map env = System.getenv();
   for (Iterator it=env.entrySet().iterator(); it.hasNext(); ) {
      Map.Entry entry = (Map.Entry)it.next();
      System.out.println(entry.getKey() + " = " + entry.getValue());
    }
 }
}

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

-FoX- schreef op 23 september 2004 @ 14:13:
ENKEL VOOR 1.5 oftewel 5.0:
Als je het dan toch voor Java 5 schrijft ;)
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.util.*;

public class Test {
 public static void main(String args[]) {
   // just one
   System.out.println("PATH = " + System.getenv("PATH"));

   // all of them
   Map env = System.getenv();
   for (Map.Entry entry : env.entrySet())) {
      System.out.println(entry.getKey() + " = " + entry.getValue());
    }
 }
}

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Een workaround zou het volgende kunnen zijn:

Java:
1
2
3
4
5
Process p = Runtime.getRuntime().exec("cmd.exe /c echo %JAVA_HOME%");
BufferedReader br = new BufferedReader
     ( new InputStreamReader( p.getInputStream() ) );
String envVarStr = br.readLine();
System.out.println(envVarStr);