Java Runtime Enviroment 1.8_25
Moderators: MVogt, moderators
Re: Java Runtime Enviroment 1.8_25
@ Anton:
Wie wurde bei diesem Script das Problem mit den javapath-Variablen gelöst?
Da hänge ich gerade fest.
Gruß Marc
Wie wurde bei diesem Script das Problem mit den javapath-Variablen gelöst?
Da hänge ich gerade fest.
Gruß Marc
Re: Java Runtime Enviroment 1.8_25
Hallo Marc,
in dem von mir genannten Link findest du unter dem Punkt "Mit Orca die Datei jre8.mst erstellen und Java installieren" eine Anleitung wie du den Pfad ändern kannst.
Grüße
Anton
in dem von mir genannten Link findest du unter dem Punkt "Mit Orca die Datei jre8.mst erstellen und Java installieren" eine Anleitung wie du den Pfad ändern kannst.
Grüße
Anton
Re: Java Runtime Enviroment 1.8_25
Bei mir werden bei der Installation über Empirum die Path Variablen und die Links in C:\Programdata\Oracle\Java\javapath nicht angelegt.
Daher bringt java -version im CMD kein Ergebnis.
Java selbst kann ich konfigurieren.
Wenn ich es über die Anleitung mit den PStools installiere, habe ich die Path Variablen im CMD Fenster des Systems enthalten, im User CMD sind sie NICHT drin.
Trage ich sie dann händisch nach, gehts.
Die Links werden bei der PSTools Installation ebenfalls angelegt.
Warum bei der Empiruminstallation nicht?
Ist doch auch eine "System"-User Installation.
Daher bringt java -version im CMD kein Ergebnis.
Java selbst kann ich konfigurieren.
Wenn ich es über die Anleitung mit den PStools installiere, habe ich die Path Variablen im CMD Fenster des Systems enthalten, im User CMD sind sie NICHT drin.
Trage ich sie dann händisch nach, gehts.
Die Links werden bei der PSTools Installation ebenfalls angelegt.
Warum bei der Empiruminstallation nicht?
Ist doch auch eine "System"-User Installation.
Re: Java Runtime Enviroment 1.8_25
Hi,
.
@MarcW:
Ich hatte das Problem zweimal auf meiner Test-VM, aber ich denke das war bedingt durch den Snapshot Restore.
Ist es denn bei dir noch vorhanden? Dein Post ist ja schon ein wenig her.
danke AntonD für den Auszug aus deinem Paket, dass hat mir sehr geholfenAntonD wrote: Hier einmal ein Auszug aus meinem Paket für die Version 1.8_45.
Grüße
Anton
Code: Select all
[InstallMSI] AddMeter -1 1:%SRC%\Setupfiles\java.settings.cfg,%ProgramData%\Oracle\Java\,CLIENT MACHINE USEFILENAME,0 Call MsiExec /I "%SRC%\SetupFiles\jre1.8.0_45.msi" INSTALLCFG="%SRC%\SetupFiles\java_install.cfg" TRANSFORMS="%SRC%\SetupFiles\jre8.mst" REBOOT=REALLYSUPPRESS ARPSYSTEMCOMPONENT=1 /qn /Li "%MSILogFile%" If %ErrorLevel% == "3010" Then "RebootRequired" EndIf If DoesRegKeyExist ("HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{26A24AE4-039D-4CA4-87B4-2F83218045F0},UnInstallString") == "0" & DoesRegKeyExist ("HKLM,SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{26A24AE4-039D-4CA4-87B4-2F83218045F0},UnInstallString") == "0" Then "AbortMSIInst" EndIf Del "%MSILogFile%"

@MarcW:
Ich hatte das Problem zweimal auf meiner Test-VM, aber ich denke das war bedingt durch den Snapshot Restore.
Ist es denn bei dir noch vorhanden? Dein Post ist ja schon ein wenig her.
Re: Java Runtime Enviroment 1.8_25
Hallo zusammen,
ich muss mich nochmal korrigieren. Ich habe bei den ersten Client-Installationen festgestellt, dass das Problem von MarcW auch bei uns teilweise auftritt.
Bei 2 von 6 PCs sind keine Symbollinks im Verzeichnis "C:\Programdata\Oracle\Java\javapath" erstellt worden
.
Bei 4 der 6 PCs sind diese dagegen korrekt erstellt.
Woran kann das liegen?
ich muss mich nochmal korrigieren. Ich habe bei den ersten Client-Installationen festgestellt, dass das Problem von MarcW auch bei uns teilweise auftritt.
Bei 2 von 6 PCs sind keine Symbollinks im Verzeichnis "C:\Programdata\Oracle\Java\javapath" erstellt worden

Bei 4 der 6 PCs sind diese dagegen korrekt erstellt.
Woran kann das liegen?
MarcW wrote:Bei mir werden bei der Installation über Empirum die Path Variablen und die Links in C:\Programdata\Oracle\Java\javapath nicht angelegt.
Daher bringt java -version im CMD kein Ergebnis.
Java selbst kann ich konfigurieren.
Wenn ich es über die Anleitung mit den PStools installiere, habe ich die Path Variablen im CMD Fenster des Systems enthalten, im User CMD sind sie NICHT drin.
Trage ich sie dann händisch nach, gehts.
Die Links werden bei der PSTools Installation ebenfalls angelegt.
Warum bei der Empiruminstallation nicht?
Ist doch auch eine "System"-User Installation.
Re: Java Runtime Enviroment 1.8_25
Hallo nochmal,
ich habe die Ursache zwar nicht gefunden, aber folgenden Code im Paket zusätzlich hinzugefügt.
Wenn Java (Oracle) meint es könnte machen was es will, dann kann ich das auch 
@Frank Dethlefsen: Danke für den Code zum Erstellen der Symbolic Links
.
ich habe die Ursache zwar nicht gefunden, aber folgenden Code im Paket zusätzlich hinzugefügt.
Code: Select all
#Set:JavaPathCheck, DONTDELETE MACHINE
[Set:JavaPathCheck]
If DoesFileExist ("%CommonAppdata%\Oracle\Java\javapath\java.exe") <> "1" Then "Set:JavaChanges" EndIf
[Set:JavaChanges]
;Symbollinks werden erzeugt
Callhidden "%SRC%\Tools\psexec.exe" -accepteula -s cmd.exe /c mklink "%CommonAppdata%\Oracle\Java\javapath\java.exe" "%programfiles%\Java\jre1.8.0_45\bin\java.exe"
Callhidden "%SRC%\Tools\psexec.exe" -accepteula -s cmd.exe /c mklink "%CommonAppdata%\Oracle\Java\javapath\javaw.exe" "%programfiles%\Java\jre1.8.0_45\bin\javaw.exe"
Callhidden "%SRC%\Tools\psexec.exe" -accepteula -s cmd.exe /c mklink "%CommonAppdata%\Oracle\Java\javapath\javaws.exe" "%programfiles%\Java\jre1.8.0_45\bin\javaws.exe"
#Autoexec.bat:JavaPath
[Autoexec.bat:JavaPath]
;Umgebungsvariable wird gesetzt (vorne (links) im Pfad hinzugefügt)
PATH <%CommonAppdata%\Oracle\Java\javapath

@Frank Dethlefsen: Danke für den Code zum Erstellen der Symbolic Links

Re: Java Runtime Enviroment 1.8_25
Vielen Dank für diesen Thread.
Ich wäre niemals auf die Idee gekommen dass System keine Berechtigung hat symbolische Links zu erzeugen
Eure Lösung hat mir sehr geholfen.
Java ist echt eine Plage und Oracle scheint es nur noch schlimmer zu machen.
Ich wäre niemals auf die Idee gekommen dass System keine Berechtigung hat symbolische Links zu erzeugen

Eure Lösung hat mir sehr geholfen.
Java ist echt eine Plage und Oracle scheint es nur noch schlimmer zu machen.
Empirum Version 15.1 Patch 9
Re: Java Runtime Enviroment 1.8_25
Hallo zusammen, vielen Dank für die Lösung! Ich habe die Lösung für den Installationsteil ohne PSTools angewendet.
Es reicht aus, dass JavaPathCheck mit dem Flag CLIENT DONTDELETE aufgerufen wird. Dann muss man den Teil entfernen, damit nur der Rest bleibt.
Also, die Verknüpfungen werden bei der Installation erzeugt. In meinem Fall installiere ich parallele Versionen von Java (einfach Parameter REMOVEOUTOFDATEJRES=0 setzen, anstatt =1).
Wenn man diese Deinstallation lokal manuell durchführen würde (mit msiexec /x {guid} oder durch systemsteurung, ich paketiere die letzte Version, also die 8.0.101), wird die neueste Version deinstalliert und somit auch die Verknüpfungen, die man bei der Installation erstellt hat (und das ist normal) und kurz davor die Deinstallation beendet wird, werden die Verknüpfungen der nach der Deinstallation größten Version automatisch erzeugt.
Also praktisch: Ich habe auf meinem Testrechner nur die Version 8.0.91 und möchte die Version 8.0.101 parallel installieren. Die Installation klappt und die Verknüpfungen der Version 8.0.101 werden unter erstellt.
Ich führe jetzt eine manuelle Deinstallation aus (mit msiexec /x {GUID}). Der Ordner der Version 8.0.101 verschwindet von und somit auch die Verknüpfungen unter . Unmittelbar darauf, kurz bevor der MSI-Installer geschlossen wird, werden automatisch die Verknüpfungen für die Version 8.0.91 unter javapath erzeugt und wenn man dann java -version in CMD ausführt, klappt es.
Ok, jetzt möchte ich aber die Deinstallation mit Matrix42 und nicth mehr manuell durchführen.
Mein Vorgehen ist wie folgt.
Bei der Installation möchte ich zuerst überprüfen, ob die Version auf dem Rechner >= die Empirumversion ist. Wenn ja -> Installationsabbruch, ansonsten wird JRE installiert.
Ich führe dann eine Batch-Datei aus, die das Ergebnis des CMD-Befehls "java -version" einliest und es in eine TXT-Datei speichert. Dann führe ich ein PS-Skript aus, das den Inhalt der erzeugten TXT-Datei einliest und filtriert, damit ich dann zwei Keys in die Registry anlegen kann.
Der erste Key hat als Wert den Wert von JRE aber mit einer anderen Formatierung (in diesem Fall 8.0.91, also "jre1." fallen weg und "_" wird durch "." ersetzt). Diese "Formatierung" findet man unter und ich werde die Variable bei der Deinstallation benötigen.
Der zweite Key hat als Wert "jre%Version%" ohne Anführungszeichen natürlich (in diesem Fall "jre1.8.0_91").
Der Wert des ersten Keys wird in Empirum eingelesen und in eine Variable gespeichert mit der %Version% des Pakets verglichen. Gleichzeitig wird auch der Wert in der Registry gelöscht, da ich den Wert des Keys schon eingelesen und in eine Variable importiert habe.
Der zweite Key (also in diesem Fall "jre1.8.0_91" bleibt).
Bei der Deinstallation importiere ich den Wert des zweiten Keys (der wurde nicht gelöscht) und speichere den in eine Variable. Danach mache ich dasselbe (also ich ermittle die installierte Version, aber diesesmal, um zu überprüfen, ob die installierte Version noch vorhanden ist und wenn ja, ob es sich um dieselbe Version handelt.
Falls es kein JRE oder einfach eine andere Version gibt -> Installationsabbruch mit Exit, da der Benutzer jre selbst manuell deinstalliert/eine neue Version installiert hat).
Falls JRE noch da wäre und dieselbe Version wie %Version% installiert wurde, führe ich eine Deinstallation aus und muss die Verknüpfungen der in jenem Moment größten Version wieder setzen (wir reden jetzt der Version 8.0.91, da die 8.0.101 gerade deinstalliert wurde).
Und jetzt kommt mein Problem: ich kann diese Deinstallation nicht durchführen.
Ich habe verschiedene Lösungen ausprobiert.
1)Erste Lösung: mit DONTDELETE CLIENT (%JavaVersionOld% ist der Wert des zweiten Keys, also "jre1.8.0_91")
Es passiert einfach nichts, also die Verknüpfungen werden nicht erzeugt (mit dem Package Editor wird der Abschnitt nicht einmal berücksichtigt, also der Abschnitt wird übersprungen). Ich habe auch das Wort "CLIENT" weggelassen, leider ohne Erfolg (im Package Editor wird aber der Abschnitt berücksichtigt).
2) Zweite Lösung: mit PSTools
Je nach %PROCESSOR_ARCHITECTURE% (x86/x64) nutze ich ein anderes Tool, also entweder PsTools64.exe oder PsTools.exe und ich führe die Befehle genau am ende. Das Problem ist, dass das Tool nicht einmal geht, wenn ich es lokal ausführe. Ich habe wie emfphlen das Tool mit aufgerufen (beide Tools befinden sich in einem Ordner, der auf dem Zielclient unter C:\Tools kopiert wird) und es geht nicht. Wenn ich den ganzen Befehl, also
in CMD ausführe, dann geht nicht, da ich eine Meldung in CMD bekomme ("Connecting with PsExec service on Computername") und nach einigen Sekunden "Der Netzwerkpfad wurde nicht gefunden". Wenn ich aber den Parameter "-s" weglasse, geht es. Wenn ich dann die Deinstallation nicht mehr manuell, sonder durch Empirum ohne "-s" Parameter verteilen lasse, geht es auch nicht, es werden keine Verknüpfungen erzeugt.
Warum geht der Abschnitt, der mit DELETE CLIENT markiert wird, nicht? Wie kann ich diese Verknüpfungen erstellen?
Danke!
Es reicht aus, dass JavaPathCheck mit dem Flag CLIENT DONTDELETE aufgerufen wird. Dann muss man den Teil
Code: Select all
"C:\Tools\PsExec" -accepteula -s
Also, die Verknüpfungen werden bei der Installation erzeugt. In meinem Fall installiere ich parallele Versionen von Java (einfach Parameter REMOVEOUTOFDATEJRES=0 setzen, anstatt =1).
Wenn man diese Deinstallation lokal manuell durchführen würde (mit msiexec /x {guid} oder durch systemsteurung, ich paketiere die letzte Version, also die 8.0.101), wird die neueste Version deinstalliert und somit auch die Verknüpfungen, die man bei der Installation erstellt hat (und das ist normal) und kurz davor die Deinstallation beendet wird, werden die Verknüpfungen der nach der Deinstallation größten Version automatisch erzeugt.
Also praktisch: Ich habe auf meinem Testrechner nur die Version 8.0.91 und möchte die Version 8.0.101 parallel installieren. Die Installation klappt und die Verknüpfungen der Version 8.0.101 werden unter
Code: Select all
C:\ProgramData\Oracle\Java\javapath
Ich führe jetzt eine manuelle Deinstallation aus (mit msiexec /x {GUID}). Der Ordner der Version 8.0.101 verschwindet von
Code: Select all
%PROGRAMFILES%\Java
Code: Select all
C:\ProgramData\Oracle\Java\javapath
Ok, jetzt möchte ich aber die Deinstallation mit Matrix42 und nicth mehr manuell durchführen.
Mein Vorgehen ist wie folgt.
Bei der Installation möchte ich zuerst überprüfen, ob die Version auf dem Rechner >= die Empirumversion ist. Wenn ja -> Installationsabbruch, ansonsten wird JRE installiert.
Ich führe dann eine Batch-Datei aus, die das Ergebnis des CMD-Befehls "java -version" einliest und es in eine TXT-Datei speichert. Dann führe ich ein PS-Skript aus, das den Inhalt der erzeugten TXT-Datei einliest und filtriert, damit ich dann zwei Keys in die Registry anlegen kann.
Der erste Key hat als Wert den Wert von JRE aber mit einer anderen Formatierung (in diesem Fall 8.0.91, also "jre1." fallen weg und "_" wird durch "." ersetzt). Diese "Formatierung" findet man unter
Code: Select all
C:\Program Files\Java
Der zweite Key hat als Wert "jre%Version%" ohne Anführungszeichen natürlich (in diesem Fall "jre1.8.0_91").
Der Wert des ersten Keys wird in Empirum eingelesen und in eine Variable gespeichert mit der %Version% des Pakets verglichen. Gleichzeitig wird auch der Wert in der Registry gelöscht, da ich den Wert des Keys schon eingelesen und in eine Variable importiert habe.
Der zweite Key (also in diesem Fall "jre1.8.0_91" bleibt).
Bei der Deinstallation importiere ich den Wert des zweiten Keys (der wurde nicht gelöscht) und speichere den in eine Variable. Danach mache ich dasselbe (also ich ermittle die installierte Version, aber diesesmal, um zu überprüfen, ob die installierte Version noch vorhanden ist und wenn ja, ob es sich um dieselbe Version handelt.
Falls es kein JRE oder einfach eine andere Version gibt -> Installationsabbruch mit Exit, da der Benutzer jre selbst manuell deinstalliert/eine neue Version installiert hat).
Falls JRE noch da wäre und dieselbe Version wie %Version% installiert wurde, führe ich eine Deinstallation aus und muss die Verknüpfungen der in jenem Moment größten Version wieder setzen (wir reden jetzt der Version 8.0.91, da die 8.0.101 gerade deinstalliert wurde).
Und jetzt kommt mein Problem: ich kann diese Deinstallation nicht durchführen.
Ich habe verschiedene Lösungen ausprobiert.
1)Erste Lösung: mit DONTDELETE CLIENT (%JavaVersionOld% ist der Wert des zweiten Keys, also "jre1.8.0_91")
Code: Select all
[Product]
...
...
#JavaPathCheckUninstall,DELETE CLIENT
...
[JavaChangesUninstall]
-PATH <%CommonAppdata%\Oracle\Java\javapath
Umgebungsvariable wird gesetzt (vorne (links) im Pfad hinzugefügt)
-Callhidden cmd /c mklink "C:\ProgramData\Oracle\Java\javapath\javaws.exe" "%PROGRAMFILES%\Java\%JavaVersionOld%\bin\javaws.exe"
-Callhidden cmd /c mklink "C:\ProgramData\Oracle\Java\javapath\javaw.exe" "%PROGRAMFILES%\Java\%JavaVersionOld%\bin\javaw.exe"
-Callhidden cmd /c mklink "C:\ProgramData\Oracle\Java\javapath\java.exe" "%PROGRAMFILES%\Java\%JavaVersionOld%\bin\java.exe"
;Symbollinks werden erzeugt
[JavaPathCheckUninstall]
If DoesFileExist ("C:\ProgramData\Oracle\Java\javapath\java.exe") <> "1" Then "JavaChangesUninstall" EndIf
2) Zweite Lösung: mit PSTools
Je nach %PROCESSOR_ARCHITECTURE% (x86/x64) nutze ich ein anderes Tool, also entweder PsTools64.exe oder PsTools.exe und ich führe die Befehle genau am ende. Das Problem ist, dass das Tool nicht einmal geht, wenn ich es lokal ausführe. Ich habe wie emfphlen das Tool mit
Code: Select all
-accepteula -s
Code: Select all
C:\Tools\PsExec64 -accepteula -s cmd /c mklink "C:\ProgramData\Oracle\Java\javapath\javaws.exe" "%PROGRAMFILES%\Java\jre1-8-0_91\bin\javaws.exe"
Warum geht der Abschnitt, der mit DELETE CLIENT markiert wird, nicht? Wie kann ich diese Verknüpfungen erstellen?
Danke!
Re: Java Runtime Enviroment 1.8_25
Hallo, ich habe noch keine Lösung gefunden, könnte mir jmd vlt helfen?
Who is online
Users browsing this forum: No registered users and 1 guest