Lesen von environment-Variablen aus Datei in Windows-Batch - (cmd.exe)
Ich versuche zu Lesen von Variablen aus einer batch-Datei für die spätere Verwendung in der batch-script, welches eine Java-launcher. Ich würde im Idealfall gerne haben das gleiche format für die Einstellungen-Datei auf allen Plattformen (Unix, Windows), und auch eine gültige Java-Properties-Datei. Das heißt, es sollte wie folgt Aussehen:
setting1=Value1
setting2=Value2
...
Ist es möglich, zu Lesen solcher Werte wie würden Sie in einer Unix-shell-Skript aus? Das könnte in etwa folgendermaßen Aussehen sollte:
READ settingsfile.xy
java -Dsetting1=%setting1% ...
Weiß ich, dass dies wohl möglich ist mit SET setting1=Value1
, aber ich würde wirklich lieber haben die gleiche Datei-format für die Einstellungen auf allen Plattformen.
Zu klären: muss ich dazu in die Kommandozeile/batch-Umgebung wie ich müssen auch Parameter festlegen, die nicht verändert werden kann innerhalb der JVM, wie -Xmx oder -classpath.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dies in einer batch Datei wie folgt:
Dieser liest eine Textdatei mit Zeichenfolgen wie "SETTING1=WERT1" und fordert, setze diese als Umgebungsvariablen.
setlocal/endlocal verwendet werden, um den Umfang des Umwelt-Variablen, um die Ausführung der batch-Datei.
Dem CMD-Kommando-Prozessor ist eigentlich Recht mächtig, wenn auch mit einer eher byzantinischen syntax.
Können Sie übergeben Sie die Eigenschaft der Datei als parameter an ein Java-Programm (das starten das Hauptprogramm später auf). Und dann profitieren Sie von der multi-Plattform-Paradigma.
Kann es klug sein, zum import nur bestimmte Variablen aus einer properties-Datei (diejenigen, die Sie wissen über vor der Zeit), in diesem Fall empfehle ich eine Funktion wie die folgende:
Die aufgerufen werden würde, indem
call:parsePropertiesFile props.properties setting1 setting2
die Variablen setting1 und setting2Können Sie auch Zugriff auf die OS' environment-Variablen in einem Java-Programm: