Comment vérifier ou mettre à jour votre version de Java sous Windows à l’aide de PowerShell

Comment vérifier, désinstaller et mettre à jour Java Runtime à l’aide de PowerShell et de méthodes manuelles

Gérer les versions de Java sur votre ordinateur Windows peut s’avérer fastidieux, surtout lorsque des applications refusent de se lancer à cause d’une version incompatible ou obsolète. Ce guide vous explique comment vérifier la version de Java installée, comment obtenir cette information à distance via votre réseau et même comment supprimer les anciennes versions qui pourraient persister. Il faut l’avouer, certaines opérations peuvent être longues ou complexes, notamment avec les installateurs Java récents qui utilisent des pages web Java chargées via JavaScript. Mais comprendre les commandes et le processus permet de maîtriser la situation.

Comment vérifier la version de Java sous Windows ?

La plupart des utilisateurs exécutent simplement la commande java -versiondans l’invite de commandes, ce qui permet de voir rapidement les logiciels installés. Généralement, le résultat ressemble à ceci :

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) 

Si cela ne fournit pas beaucoup d’informations ou si Java n’est pas installé, il se peut qu’il soit absent du PATH ou qu’il ne soit pas installé du tout. Par ailleurs, vous pouvez également utiliser la Recherche Windows et saisir « Java » ou consulter le Panneau de configuration > Programmes > Programmes et fonctionnalités pour obtenir des informations sur la version installée, notamment si vous souhaitez connaître la version de l’interface graphique.

Vérifier la version de Java à l’aide de PowerShell

PowerShell offre une méthode pratique pour récupérer des informations Java, notamment si vous devez le faire sur plusieurs ordinateurs sans avoir à saisir de nombreuses commandes. Exécutez la commande suivante :

Get-Command java | Select-Object -ExpandProperty Version

Cela vous donne directement la chaîne de version, comme « 1.8.0.261 ».Pour plus de détails, notamment sur le fournisseur, essayez :

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

Pour obtenir des informations encore plus détaillées sur la version de Java installée, vous pouvez interroger Windows Management Instrumentation (WMI).Cet outil extrait les données des programmes installés ; il est donc pratique pour confirmer précisément les versions de Java présentes sur le système.

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

Sachez que l’interrogation de Win32_Product peut être lente et parfois entraîner la reconfiguration d’applications — un comportement inhabituel, mais typique de Windows. La sortie affichera tous les produits liés à Java, y compris les mises à jour et les mises à jour automatiques. Pour n’afficher que l’environnement d’exécution Java principal, utilisez :

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

PowerShell – Vérifier la version de Java sur des ordinateurs distants

Pour la gestion d’un réseau ou de serveurs de grande envergure, PowerShell se révèle particulièrement utile. Avec les autorisations appropriées, vous pouvez récupérer des informations Java depuis plusieurs machines distantes sans avoir à vous connecter manuellement à chacune d’elles via SSH. Voici un exemple :

# 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 

Si cela vous intéresse, la commande Get-ADComputer des outils RSAT permet de générer une liste des ordinateurs appartenant au domaine, que vous pouvez ensuite utiliser dans ce script. Attention cependant : sur un domaine, elle a détecté environ 24 versions différentes de Java, ce qui est assez surprenant, mais pas étonnant vu le nombre de mises à jour généralement présentes.

Script PowerShell pour désinstaller toutes les versions de Java

Il est judicieux de supprimer les anciennes versions de Java avant d’en installer une nouvelle. Vous ne souhaitez probablement pas conserver plusieurs JRE obsolètes ou non sécurisées, surtout compte tenu des changements intervenus dans la politique de licences et le comportement des mises à jour automatiques de Java. Voici quelques méthodes pour supprimer toutes les installations de Java, à distance ou en local.

Premièrement, une méthode simple (mais lente) consiste à utiliser :

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

Cela fonctionne, mais il est vrai que la désinstallation via WMI peut être lente. Une meilleure solution consiste à explorer le registre pour trouver les GUID exacts des produits, ce qui rend la désinstallation plus rapide et plus propre. Voici un script rudimentaire qui recherche les chaînes de désinstallation dans le registre :

# 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 } }

Ainsi, il détecte toutes les versions de Java et effectue une désinstallation silencieuse, sans affichage d’interface graphique. Assurez-vous toutefois d’exécuter PowerShell en tant qu’administrateur ; la désinstallation à distance requiert des autorisations appropriées.

Comment télécharger et installer Java JRE à l’aide de PowerShell ?

Obtenir la dernière version de Java et la déployer automatiquement, c’est plutôt pratique, mais aussi un peu compliqué ces derniers temps. Normalement, on crée un script pour le téléchargement et on exécute l’installateur en mode silencieux. Par exemple :

# 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" 

En pratique, le passage d’Oracle aux liens de téléchargement générés dynamiquement a complexifié l’automatisation : le site web charge souvent une page avec du JavaScript, difficilement analysable par de simples scripts. De ce fait, nombreux sont ceux qui optent pour des téléchargements manuels ou l’utilisation de gestionnaires de paquets comme WinGet, qui facilitent l’installation des différentes versions d’ OpenJDK.

Alors, en espérant que cela vous aide à maîtriser les versions de Java, à faire le ménage et peut-être même à renforcer la sécurité de vos réseaux. C’est un peu complexe au début, mais une fois les commandes en main, la gestion de Java sous Windows devient bien plus simple.