Verzeichnisnamen auslesen

Antworten
DocDOS
Beiträge: 98
Registriert: 18 Mai 2009, 08:29
Kontaktdaten:

Verzeichnisnamen auslesen

Beitrag von DocDOS »

Hallo Community,

seit einigen Wochen gibt es ja Java 8 als 32/64-Bit-Version zum Download bei Sun. Aktuell scheint Update 25 zu sein (Stand 16.10.2014).
Ich möchte gerne diese Version bei uns verteilen, bin aber auf ein zukünftiges Problem gestoßen:
Durch das Auslesen der Datei-Version der javaw.exe in %ProgramFiles32Dir%\Java\jre7\bin lässt sich ja die installierte Java-Version auslesen, z. B. "7.0.710.14" (mit den Stringlisten geht das sehr gut). Mein Ziel ist es, so wenig Installationen wie möglich durchzuführen, denn wenn ein User bereits Java aktualisiert hat, muss OPSI es ja nicht noch einmal installieren.

Allerdings stellt mich Java 8 vor ungeahnte Herausforderungen. Java 8 meint sein Installationsverzeichnis auf %ProgramFiles32Dir%\Java\jre1.8.0_25\bin anzulegen (hier: Java release 8 Update 25).
Um unnötige Installationen, wie oben beschrieben, zu vermeiden, wäre es schön, irgendwie das Installationsverzeichnis, speziell den jre1.8.0_25-Teil, auszulesen und mittels Variable zu verarbeiten.

Durch die Funktion

Code: Alles auswählen

if fileexists
lassen sich ja bekanntlich Dateien auffinden, bzw. herausfinden, ob eine bestimmte Datei existiert oder nicht.

Geht sowas auch mit Ordnern?

Alternativ müsste man das mit ner Registry-Abfrage lösen (unter

Code: Alles auswählen

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.8\JavaHome
steht der installationspfad)
mfg
DocDOS
mhaegele
Beiträge: 293
Registriert: 18 Aug 2010, 13:55

Re: Verzeichnisnamen auslesen

Beitrag von mhaegele »

Hallo!

Vielleicht würde es helfen den Registrykey mit den entsprechenden Werten auszulesen?

Bei Java8 kenne ich den nicht, für Java7 war das aber teilweise die Methode für deinstall etc. ...

hth
MH
holgerv
Beiträge: 288
Registriert: 20 Aug 2012, 09:35

Re: Verzeichnisnamen auslesen

Beitrag von holgerv »

DocDOS hat geschrieben:Um unnötige Installationen, wie oben beschrieben, zu vermeiden, wäre es schön, irgendwie das Installationsverzeichnis, speziell den jre1.8.0_25-Teil, auszulesen und mittels Variable zu verarbeiten.
Wir machen sowas Ähnliches mit:

Code: Alles auswählen

Set $Java16Home$ = GetRegistryStringValue32 ("[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.6] JavaHome")
Das geht vermutlich für JavaRE 1.8 nicht anders.

Wenn es nicht um den Pfad der Standard-1.6-Version geht, sondern speziell um den Pfad der Version 1.6.0_45, dann sollte funktionieren:

Code: Alles auswählen

Set $Java16045Home$ = GetRegistryStringValue32 ("[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.6.0_45] JavaHome")
Ggf. musst Du beachten, dass die 32-Bit- und die 64-Bit-Versionen von JavaRE nicht unbedingt identisch sind. (Ich berücksichtige in den Code-Zeilen oben nur die 32-Bit-Versionen.)

Viel Erfolg


Holger
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3327
Registriert: 04 Jun 2008, 14:27

Re: Verzeichnisnamen auslesen

Beitrag von d.oertel »

Hi,

nur zur Info: Das Hanbuch sagt:
• FileExists (<datei name>) [W/L]

Die Funktion gibt wahr zurück, wenn die genannte Datei oder das Verzeichnis existiert, ansonsten kommt die
Antwort falsch.
gruß
d.oertel


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


Antworten