BATCH Aktuellste installierte JAVA-Runtime auslesen und als Variable abspeichern
Hallo zusammen,
ich habe mal wieder mit BATCH Dateien zu tun.
Aufgabe ist ganz einfach: Aktuellste installierte JAVA-Runtime auslesen und als Variable abspeichern.
das blöde daran: Keine Ahnung wie das gehen soll...
Grundsätzlich habe ich mir schon ein paar Gedanken gemacht:
Unter der Variable %CLASSPATH% gibt es einen grundsätzlich brauchbaren Pfad, z.B.:
und das ergibt dann:
Die Ausgabe ist ja schonmal nicht schlecht. müsste jetzt ersteinmal in eine neue Variable.
Mein Vorschlag:
ergibt:
So weit so schlecht...
Jetzt brauche ich aber nur den Bereich "C:\Program Files\Java\jre6\", wie kann ich das "rausschreiben" ?
Freue mich auf eure Ideen,
Gruß Dominik
ich habe mal wieder mit BATCH Dateien zu tun.
Aufgabe ist ganz einfach: Aktuellste installierte JAVA-Runtime auslesen und als Variable abspeichern.
das blöde daran: Keine Ahnung wie das gehen soll...
Grundsätzlich habe ich mir schon ein paar Gedanken gemacht:
Unter der Variable %CLASSPATH% gibt es einen grundsätzlich brauchbaren Pfad, z.B.:
echo %CLASSPATH%
.;C:\Program Files\Java\jre6\lib\ext\QTJava.zip
Die Ausgabe ist ja schonmal nicht schlecht. müsste jetzt ersteinmal in eine neue Variable.
Mein Vorschlag:
SET JAVA_VAR =%CLASSPATH%
ECHO %CLASSPATH%
.;C:\Program Files\Java\jre6\lib\ext\QTJava.zip
So weit so schlecht...
Jetzt brauche ich aber nur den Bereich "C:\Program Files\Java\jre6\", wie kann ich das "rausschreiben" ?
Freue mich auf eure Ideen,
Gruß Dominik
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 169576
Url: https://administrator.de/contentid/169576
Ausgedruckt am: 21.11.2024 um 22:11 Uhr
14 Kommentare
Neuester Kommentar
Hi.
Wie wär's mit
Ausgabe:
Version=1.6.0_25
Wie wär's mit
if %PROCESSOR_ARCHITECTURE%==AMD64 goto 64
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" /v Java6FamilyVersion') DO SET Version=%%B
ECHO Version=%Version%
goto end
:64
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment" /v Java6FamilyVersion') DO SET Version=%%B
ECHO Version=%Version%
:end
Ausgabe:
Version=1.6.0_25
Hallo yakazaa,
ich hätte da noch was: Was ist wenn die Java-Version von 1.6 nach 1.7 oder so wechselt?
Hier meine Lösung dazu. Es wird in allen Unterschlüsseln des schon bekannten Registryschlüssels nach einem Wert namens
Die Unterscheidung zwischen x86 und x64 mache ich immer über die Abfrage, ob die Variable
Ausgabe:
Genauer geht's nicht .
Gruß
Friemler
ich hätte da noch was: Was ist wenn die Java-Version von 1.6 nach 1.7 oder so wechselt?
Hier meine Lösung dazu. Es wird in allen Unterschlüsseln des schon bekannten Registryschlüssels nach einem Wert namens
FullVersion
gesucht.Die Unterscheidung zwischen x86 und x64 mache ich immer über die Abfrage, ob die Variable
ProgramFiles(x86)
existiert.@echo off & setlocal
if not defined ProgramFiles(x86) (
set "RegKey=HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment"
) else (
set "RegKey=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment"
)
for /f "tokens=3" %%a in ('reg query "%RegKey%" /s ^| findstr /i /r /c:"^ * FullVersion"') do (
set "JRE-Version=%%a"
)
echo %JRE-Version%
Ausgabe:
1.6.0_26-b03
Gruß
Friemler
Tjaaa, dann holen wir uns doch gleich das InstallDir:
Gruß
Friemler
@echo off & setlocal
if not defined ProgramFiles(x86) (
set "RegKey=HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment"
) else (
set "RegKey=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment"
)
for /f "tokens=2*" %%a in ('reg query "%RegKey%" /s ^| findstr /i /r /c:"^ * InstallDir"') do (
set "JRE-InstallDir=%%bbin"
)
echo %JRE-InstallDir%
Gruß
Friemler
geht das überhaupt? Ich denke nicht.
Zitat von @Friemler:
> Zitat von @yakazaa:
> ----
> wenn mehrere gleichzeitig installiert wären
geht das überhaupt? Ich denke nicht.
> Zitat von @yakazaa:
> ----
> wenn mehrere gleichzeitig installiert wären
geht das überhaupt? Ich denke nicht.
Dann hat
JRE-InstallDir
den Wert des Schlüsselwertes INSTALLDIR
von der als letztes in der Registry auftauchenden Java-Version. Ob die jetzt immer nach Versionsnummern geordnet dort eingetragen sind weiß ich nicht.Gruß
Friemler