web-dev-qa-db-fra.com

Exécuter un fichier JAR en utilisant un JRE spécifique

Sous Windows, existe-t-il un moyen d'exécuter un fichier JAR à l'aide d'un JRE situé dans un dossier spécifique? Semblable à la façon dont Eclipse cherche son JRE dans le chemin que vous lui donnez. Certains codes exécutables Windows (C ou C++) ou un fichier Batch feront l'affaire. Merci!

22
sol_var

Un répertoire JRE a un bin/Java.exe.

Vous pouvez exécuter un pot de cette JRE simplement avec

<path_to_jre>/bin/Java.exe -jar Executable.jar

Si vous ne voulez pas avoir à ouvrir une console à chaque fois, insérez simplement la ligne ci-dessus dans un fichier .bat et double-cliquez dessus.

46
FlightOfStairs

Créez ce fichier de commandes dans le même dossier que votre fichier jar:

@echo off
set path=C:\Program Files (x86)\Java\bin\;%path%
Java -version
javaw -jar jaryouwanttorun.jar
pause
exit

Exécuter depuis la commande

<path_to_jre>/bin/Java.exe -jar Executable.jar

(ou utilisez javaw.exe pour revenir à l'invite de commande immédiatement après le lancement du fichier JAR)

Ou définir des variables d'environnement

De nombreux scripts de démarrage respectent les variables JRE_HOME et Java_HOME pour JRE et JDK respectivement. Certains n'aiment pas les espaces, utilisez donc la convention de chemin court (C:\Progra~1\Java\jre1.8.0_171)

Sur les systèmes 64 bits:
Progra~1 = Program Files
Progra~2 = Program Files (x86)

Ou définir des associations de fichiers

pour lancer les fichiers JAR en double-cliquant. Malheureusement, l'interface graphique (Panneau de configuration\Tous les éléments du Panneau de configuration\Programmes par défaut\Associations définies) est assez médiocre, vous devez donc le faire dans le Registre.

Ceci est ma méthode préférée pour choisir JRE 32/64 bits lorsque le paramètre du Panneau de configuration est ignoré.

  1. Vérifiez que la valeur par défaut dans HKEY_CLASSES_ROOT\.jar est jarfile
  2. Vérifiez que la valeur par défaut dans HKEY_CLASSES_ROOT\jarfile\Shell\open\command pointe vers votre JRE.

Dans mon cas pour env 64bit: 

"C:\Program Files\Java\jre1.8.0_171\bin\javaw.exe" -jar "%1" %*

Attention aux guillemets: javaw path contient de l’espace; le chemin JAR peut contenir des espaces; les paramètres passés sont séparés par des espaces.

1
Hrobky

La syntaxe de PowerShell est la suivante

& 'C:\Program Files\Java\jdk1.7.0_80\bin\Java.exe' -jar .\Executable.jar -Xmx256m

Utilisez un chemin d'accès à Java.exe spécifique installé sur votre système.

0
naXa

Vous pouvez modifier la variable d’environnement Windows pour Java_HOME (voir ici ). Pointez-le sur le JRE que vous voulez utiliser. Je suis sûr qu'il n'y a pas de moyen de le faire par programme (car le bon JRE est chargé au moment de l'exécution).

0
kentcdodds