Umgebungsvariable

Status
Nicht offen für weitere Antworten.
N

newbiii

Gast
Möchte gern ein Umgebungvariable einlesen welche so aus sieht

PROJEKT_HOME=C:\Tomcat\webapps\Projekt;

wie kann ich das realisieren???

das ich der Variablen "pfad" dann diese Pfadangabe stehen hab oder reicht es wenn ich in meinem Programm
an der stelle wo ich sie brauch zum Bsp.: lesen aus einer textdatei das so mache???

Code:
BufferedReader read = new BufferedReader(new FileReader("PROJEKT_HOME/testaa.txt"));
 

thE_29

Top Contributor
Welches OS hast du??

Hab das was für Windows und Linux

Code:
  /****************************************************************************
   * Funktion holt die Enviromentvariablen und gibt diese dann zurück
   * @param strWhat String welche variable
   * @return String wert
   ***************************************************************************/
  public static String getEnviroment(String strWhat)
  {
    String strRet = null;
    String strTmp = "";
    //Achtung es fehlt ein Mac OS Zweig, da ich net weiß wie es dort geht!!
    if(System.getProperty("os.name").toLowerCase().indexOf("windows") != -1)
      strTmp = "cmd /c set";
    else
      strTmp = "konsole -e env";

    BufferedReader br = null;
    br = new BufferedReader(new InputStreamReader(Runtime.getRuntime().exec(strTmp).
                                                  getInputStream()));
    try{
      while ( ( strTmp = br.readLine() ) != null)
      {
        //gefunden
        if(strTmp.toLowerCase().startsWith(strWhat.toLowerCase()) && strTmp.indexOf("=") != -1)
        {
          strRet = strTmp.substring(strTmp.indexOf("=") + 1);
          while ( ( strTmp = br.readLine() ) != null && strTmp.indexOf("=") == -1)
            strRet += strTmp;
        }
      }
      br.close();
    }
    catch(Exception ex)
    {
      ex.printStackTrace(System.out);
    }
+ strRet);
    return strRet;
  }



Wobei strWhat zB PROJEKT_HOME ist und er dir dann das zurückgibt.

Hab alles tolowercase gemacht, falls man sich wo vertippt, aber kann man auch rausnehmen!


Nachtrag: hups da war noch ne andere Funktion drinnen
 

Sky

Top Contributor
Ich glaub, dass ist OS-Spezifisch und muss daher so gemacht werden (ein Bsp. fuer Windows):

Code:
Process p = Runtime.getRuntime().exec( "cmd /c echo %PROJEKT_HOME%" );
 
N

newbiii

Gast
Naja dass ganze Problem ist ja dieses.

Es sollte unter Linux sowie unter Windows laufen
In dem Ordner
...\Tomcat\webapps\Projekt\web-inf\classe\

sollen textdateien geschriben werden eine art log-files
nun ist es aber so das diese Pfadangabe sich je nach betriebsystem ändern kann.
Ich muß also immer zu erst diese Pfadangabe irgenwoher hollen

thE_29 Verstehe dein Script noch net so richtig was macht diese Zeile ????
Fehlt da was???

Code:
strWhat + ", ControlLogging clog)");
 

Sky

Top Contributor
newbiii hat gesagt.:
nun ist es aber so das diese Pfadangabe sich je nach betriebsystem ändern kann.
Ich muß also immer zu erst diese Pfadangabe irgenwoher hollen

Der Vollständigkeit halber: Also wenn Du die Angaben nur für dein Programm und nicht noch woanders im OS brauchst, so gibt es auch andere Wege.

1.) Properties
2.) Preferences
3.) Progamm-Argumente (z.B. beim Start java <prog> -path /xxx/yyy/irgendwas)
 

thE_29

Top Contributor
Das hat rausgehört ;)

Da war ein Methodenlogging eingebaut (ist bei unsere SW so) und das war noch von dem.

Sollte jetzt glaube ich so gehen!
 
N

newbiii

Gast
Mit solchen sachen wie hab ich auch schon rumprobiert

Code:
String workdir = System.getProperty("user.dir");
aber da bekomme ich als pfad

C:\Windows\System32

Sky80
 
N

newbiii

Gast
Wozu gehört "checkOS()"???? thE_29 welche klasse muß ich mit improtieren???
 

thE_29

Top Contributor
Lesen??

CheckOS == System.getProperty("os.name").toLowerCase();

ersetz das und frag auf indexOf("linux") ab! (nicht mit equals - da die checkos Funktion immer nur linux, windows, etc zurückgibt und nicht welches Win/Lin - außerdem ist das von mir eine Funktion)


Nachtrag: habs umgebaut!
 

Sky

Top Contributor
Nur noch mal die Nachfrage, wäre

Code:
 echo %PROJEKT_HOME% // Win
bzw.
Code:
 echo $PROJEKT_HOME // Linux
nicht einfacher?

Dann würde man sich doch das parsen der Rückgabewerte ersparen!?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U JRE_HOME Umgebungsvariable wird nicht erkannt Java Basics - Anfänger-Themen 7
J Eclipse Umgebungsvariable? Java Basics - Anfänger-Themen 1
M Umgebungsvariable Win7 Java Basics - Anfänger-Themen 6
N JAVA Installation - Umgebungsvariable geht nicht. Java Basics - Anfänger-Themen 3
L Umgebungsvariable Umgebungsvariable lasst sich nicht ändern Java Basics - Anfänger-Themen 2
Z Umgebungsvariable PATH-Umgebungsvariable unter Windows 7 Java Basics - Anfänger-Themen 27
J Problem mit Umgebungsvariable Java Basics - Anfänger-Themen 8
M Path Umgebungsvariable Java Basics - Anfänger-Themen 5
M Umgebungsvariable gesetzt, aber nicht alle Befehle ausführbar Java Basics - Anfänger-Themen 6
T Windows 7 - Umgebungsvariable ändern Java Basics - Anfänger-Themen 11
S dauerhafte CLASSPATH-Umgebungsvariable Java Basics - Anfänger-Themen 3
M mysql-connector-java-5.1.7-bin. jar in die umgebungsvariable installieren Java Basics - Anfänger-Themen 14
S log4j pfad per umgebungsvariable setzen? Java Basics - Anfänger-Themen 2
G Umgebungsvariable aus Java Programm heraus setzen Java Basics - Anfänger-Themen 4
T umgebungsvariable in xp setzen: hinter vorhandenen path? Java Basics - Anfänger-Themen 3
B Path Umgebungsvariable einstellen? Java Basics - Anfänger-Themen 5
G Umgebungsvariable %SYSTEMDRIVE% zum Speichern nutzen Java Basics - Anfänger-Themen 5
M Umgebungsvariable erstellen Java Basics - Anfänger-Themen 11
A Umgebungsvariable Classpath Java Basics - Anfänger-Themen 8
G umgebungsvariable einlesen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben