Systemvariablen lesen und schreiben?

Von: , Frage gestellt am Fr, 16. Apr 2004

Hi,

ich würde gerne die System- und User-Variablen auslesen bzw. setzen können.

(in Windows setze ich die ja entweder in der System-Steuerung oder im DOS-Promt mit
set VARIABLE=Wert

Gibt es da etwas?

Besten Dank

Winni

11 Antworten zu dieser Frage

  1. Antwort von nach 47 Minuten 0 hilfreich
    Re: Systemvariablen lesen und schreiben?

    Hallo Winni,

    System.getProperty("MeinWert");

    System.setProperty("MeinWert", "Hallo");

    Viele Grüsse
    Simon

    • Antwort von nach einem Tag 0 hilfreich
      Re^2: Systemvariablen lesen und schreiben?

      Naja, wenn ich

      System.out.println(System.getProperty("JAVA_HOME"));

      aufrufe, wird statt des Pfades null zurückgegeben.

      Mein Tomcat kann diese aber auswerten.

      Ne Idee? [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

      • Antwort von nach einem Tag 0 hilfreich
        Re^3: Systemvariablen lesen und schreiben?

        Hi,

        wenn Du

        System.getProperties().list(System.out);
        

        ausprobierst, dann siehst Du alle abfragbaren Systemproperties. JAVA_HOME ist kein Systemproperty, sondern meist eine Umgebungsvariable des Betriebssystems.

        Gruss,

        Herb

        • Antwort von nach einem Tag 0 hilfreich
          Re^4: Systemvariablen lesen und schreiben?

          Ja und ich will eben die Betriebssystem-Variablen haben. [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

          • Antwort von nach einem Tag 0 hilfreich
            Betriebssystemvariablen lesen

            Hi,

            so auf die Schnelle würd ich es folgendermassen machen:

            try
            {
            Process proc = Runtime.getRuntime().exec("cmd /c echo %JAVA_HOME%");
            BufferedReader br = new BufferedReader( new InputStreamReader(proc.getInputStream()) );
            for ( String s; (s = br.readLine()) != null; )
            System.out.println( s );
            }
            catch(IOException iox)
            {
            System.out.println(iox.getMessage());
            }
            }
            


            Gruss,

            Herb

            • Antwort von nach 2 Tagen 0 hilfreich
              Re: Betriebssystemvariablen lesen.. und SCHREIBEN?

              Hi,

              besten Dank, habe nun 2 Möglichkeiten zum LESEN herausgefunden.
              (Bei Bedarf kann ich es Dir auch den anderen Ansatz schicken, ist aber etwas größer)

              Aber mit dem Schreiben einer SystemVariablen habe ich ein Problem:
              <PRE>
              rt.exec("cmd /c set TEST=blabla");
              <PRE>

              führt nicht zum Ergebnis.

              Kennt wer nen Ansatz? Hi,

              so auf die Schnelle würd ich es folgendermassen machen:

              Gruss,

              Herb

            • Antwort von nach 2 Tagen 0 hilfreich
              Re^2: Betriebssystemvariablen lesen.. und SCHREIBE

              Hi,

              das Schreiben kann os nicht funktionieren, weil Du das nur für den erzeugten Prozess tust, nicht für das Betriebssystem allgemein.

              Wenn Du irgendeine Komponente mit einem Wert versorgen musst, dann solltest Du nach einem anderen Weg suchen. Willst Du zum Beispiel Tomcat von einem Javaprogramm aus starten, dann kannst Du ihm die benötigten Parameter mitgeben. Da ist ein Zugriff auf die Betriebssystemumgebungsvariablen nicht nötig.

              Gruss,

              Herb

            • Antwort von nach 2 Tagen 0 hilfreich
              Re^3: Betriebssystemvariablen lesen.. und SCHREIBE

              Die Variable wird ja nichtmal über:

              rt.exec("cmd /c set TEST=test");
              ...
              rt.exec("cmd /c set");

              übermittelt :-((

              Dann muß ich Wohl die Parameterübergabe über INI-Files machen, oder ne andere Idee?

            • Antwort von nach 2 Tagen 0 hilfreich
              Re^4: Betriebssystemvariablen lesen.. und SCHREIBE

              Vielleicht solltest Du mal sagen, was Du machen willst.
              Dann kann ich Dir eine adäquate Lösung vorschlagen.

              Gruss, Simon



Keine passende Antwort gefunden? Jetzt eigene Frage stellen!