So überprüfen oder aktualisieren Sie Ihre Java-Version unter Windows mithilfe von PowerShell

So prüfen, deinstallieren und aktualisieren Sie die Java-Laufzeitumgebung mithilfe von PowerShell und manuellen Methoden

Der Umgang mit Java-Versionen auf Ihrem Windows-Rechner kann ziemlich frustrierend sein – insbesondere, wenn Anwendungen aufgrund inkompatibler oder veralteter Java-Versionen nicht funktionieren. Diese Anleitung zeigt Ihnen, wie Sie die installierte Java-Version überprüfen, diese Information über Ihr Netzwerk abrufen und sogar ältere, möglicherweise noch vorhandene Versionen entfernen. Zugegeben, manches davon kann etwas dauern oder knifflig sein, insbesondere bei neueren Java-Installationsprogrammen, die auf Java-Webseiten basieren, die über JavaScript geladen werden. Wenn Sie die Befehle und den Ablauf jedoch verstehen, behalten Sie den Überblick.

Wie kann ich die Java-Version unter Windows überprüfen?

Die meisten Leute führen den Befehl einfach java -versionin der Eingabeaufforderung aus, um schnell zu sehen, was installiert ist. Normalerweise erhält man eine Ausgabe wie diese:

java version "1.8.0_261" Java(TM) SE Runtime Environment (build 1.8.0_261-b12) Java HotSpot(TM) Client VM (build 25.261-b12, mixed mode, sharing) 

Falls das nicht viele Informationen liefert oder Java nicht installiert ist, fehlt es möglicherweise im PATH oder ist gar nicht installiert.Übrigens: Auch die Eingabe von „Java “ in die Windows-Suche oder ein Blick in die Systemsteuerung unter „Programme“ > „Programme und Funktionen“ kann Aufschluss darüber geben, was installiert ist, insbesondere wenn Sie die Versionsinformationen der grafischen Benutzeroberfläche benötigen.

Überprüfen Sie die Java-Version mit PowerShell.

PowerShell bietet eine praktische Möglichkeit, Java-Informationen abzurufen, insbesondere wenn Sie dies auf mehreren PCs durchführen müssen, ohne ständig die Tastatur bedienen zu müssen. Führen Sie folgenden Befehl aus:

Get-Command java | Select-Object -ExpandProperty Version

Dadurch erhalten Sie direkt die Versionsnummer, z. B.„1.8.0.261“.Weitere Details, einschließlich Herstellerinformationen, erhalten Sie mit folgendem Befehl:

Get-Command java | Select-Object -ExpandProperty "FileVersion"

Für noch detailliertere Informationen über die installierte Java-Version können Sie die Windows-Verwaltungsinstrumentation (WMI) abfragen. Sie ruft Daten von installierten Programmen ab und ist daher praktisch, um genau zu überprüfen, welche Java-Versionen auf dem System vorhanden sind:

Get-WmiObject -Class Win32_Product -Filter "Name like '%Java%'"

Beachten Sie, dass die Abfrage von Win32_Product langsam sein und manchmal eine Neukonfiguration von Anwendungen verursachen kann – etwas ungewöhnlich, aber so ist Windows eben. Die Ausgabe listet alle Java-bezogenen Produkte auf, einschließlich Updates und automatischer Updater. Um nur die Java-Laufzeitumgebung anzuzeigen, verwenden Sie:

Get-WmiObject -Class Win32_Product -Filter "Name like '%Java%' and not Name like '%Java Auto Updater%'" | Select-Object Name, Version

PowerShell – Java-Version auf Remotecomputern prüfen

Bei der Verwaltung großer Netzwerke oder Server erweist sich PowerShell als besonders nützlich. Mit den entsprechenden Berechtigungen können Sie Java-Informationen von mehreren Remote-Rechnern abrufen, ohne sich manuell per SSH auf jedem einzelnen anmelden zu müssen. Hier ein grundlegendes Beispiel:

# List of computers; can be from a text file or manually entered $computers = @('server1', 'server2', 'server3') # Or, load from a file: # $computers = Get-Content -Path 'C:\Scripts\ServerList.txt' # Check Java versions remotely Get-WmiObject -Class Win32_Product -ComputerName $computers -Filter "Name like '%Java%' and not Name like '%Java Auto Updater%'" | Select-Object __Server, Name, Version 

Wenn Sie möchten, können Sie mit dem Befehl „Get-ADComputer“ aus den RSAT-Tools eine Liste der in die Domäne eingebundenen Computer erstellen und diese in das Skript einfügen. Beachten Sie jedoch, dass in einer Domäne etwa 24 verschiedene Java-Versionen gefunden wurden. Das ist zwar ziemlich viel, aber angesichts der vielen Updates, die üblicherweise verfügbar sind, nicht überraschend.

PowerShell-Skript zur Deinstallation aller Java-Versionen

Es ist ratsam, alte Java-Versionen vor der Installation einer neuen zu entfernen. Gerade angesichts der geänderten Lizenzbestimmungen und des neuen automatischen Update-Verhaltens von Java möchten Sie sicher keine unsicheren oder veralteten JREs auf Ihrem System haben. Hier finden Sie einige Möglichkeiten, alle Java-Installationen lokal oder remote zu entfernen.

Eine einfache (aber langsame) Methode ist zunächst die Verwendung folgender:

$jre_installed = Get-WmiObject -Class Win32_Product -Filter "Name like '%Java%'" $jre_installed | ForEach-Object { $_. Uninstall() }

Das funktioniert zwar, aber die WMI-basierte Deinstallation kann recht langsam sein. Eine bessere Methode besteht darin, die Registry nach den exakten Produkt-GUIDs zu durchsuchen, was die Deinstallation beschleunigt und sauberer macht. Hier ist ein einfaches Skript, das die Registry nach Deinstallationszeichenfolgen durchsucht:

# Find all Java-related uninstall strings in registry $uninstallPaths64 = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" $uninstallPaths32 = "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" $javaKeys64 = Get-ChildItem -Path $uninstallPaths64 | Get-ItemProperty | Where-Object { $_. DisplayName -like "*Java*" } $javaKeys32 = Get-ChildItem -Path $uninstallPaths32 | Get-ItemProperty | Where-Object { $_. DisplayName -like "*Java*" } # Loop through 64-bit uninstall strings foreach ($key in $javaKeys64) { if ($key. UninstallString) { $uninstallCmd = $key. UninstallString -replace "/I", "/X" -replace "/i", "/x" Write-Output "Uninstalling: $($key. DisplayName)" start-process -FilePath "msiexec.exe" -ArgumentList "/X", "$uninstallCmd", "/qb" -Wait } } # Repeat for 32-bit foreach ($key in $javaKeys32) { if ($key. UninstallString) { $uninstallCmd = $key. UninstallString -replace "/I", "/X" -replace "/i", "/x" Write-Output "Uninstalling: $($key. DisplayName)" start-process -FilePath "msiexec.exe" -ArgumentList "/X", "$uninstallCmd", "/qb" -Wait } }

So werden alle Java-Versionen gefunden und im Hintergrund deinstalliert, ohne dass eine Benutzeroberfläche angezeigt wird. Stellen Sie jedoch sicher, dass Sie PowerShell als Administrator ausführen – für die Deinstallation per Fernzugriff benötigen Sie die entsprechenden Berechtigungen.

Wie lade und installiere ich Java JRE mit PowerShell?

Den neuesten Java-Installer zu erhalten und ihn automatisch zu installieren, ist zwar ziemlich praktisch, aber in letzter Zeit auch etwas umständlich. Normalerweise würde man ein Skript für den Download erstellen und den Installer mit Silent-Optionen ausführen. Etwa so:

# Ensure TLS 1.2 is enabled for the download [Net. ServicePointManager]::SecurityProtocol = [Net. SecurityProtocolType]::Tls12 # URL of Java's online download page (which is now a problem since Oracle changed how the download links work) # You might need to get the direct link manually or parse the page, but that’s a pain # Here's a placeholder for an offline installer $installerPath = "C:\Temp\jre8.exe" # Example of download — but be aware, Oracle's website now heavily relies on JavaScript, making direct programmatic links tricky # So, you often have to manually download or use a known static link from Oracle's site # Download the offline installer from a trusted source (ex: a known URL) Invoke-WebRequest -Uri "https://download.oracle.com/otn-pub/java/jdk/8uXXX-bXX/jre-8uXXX-windows-x64.exe" -OutFile $installerPath # Run the installer silently, suppressing reboot Start-Process -FilePath "$installerPath" -ArgumentList "/s REBOOT=0" -Wait # Optional: clean up installer after install Remove-Item "$installerPath" 

In der Praxis hat sich die Automatisierung dieses Vorgangs durch Oracles Umstellung auf dynamisch generierte Download-Links jedoch als schwierig erwiesen – die Website lädt oft einfach eine Seite mit JavaScript, das sich nicht ohne Weiteres mit einfachen Skripten analysieren lässt. Daher greifen viele auf manuelle Downloads oder die Verwendung von Paketmanagern wie WinGet zurück, die die Installation von OpenJDK-Varianten vereinfachen können (wie beispielsweise mit WinGet ).

Ich hoffe also, dass Ihnen das hilft, den Überblick über Java-Versionen zu behalten, Ordnung zu schaffen und Ihre Netzwerke sicherer zu machen. Es ist anfangs etwas kompliziert, aber sobald Sie die Befehle kennen, wird die Java-Verwaltung unter Windows deutlich einfacher.