web-dev-qa-db-fra.com

Lancer le programme Windows avec une variable d'environnement personnalisée

Mon Java_HOME sur ma machine de développement - qui est Windows 7 Pro 64 Bit - pointe vers un Java 64 bits, et c'est très bien en général. Cependant, je viens d’installer un programme - à savoir, le FlashDeveloper IDE - pour lequel ce paramètre ne convient pas: un Java 32 bits est requis à la place, et le paramètre Java_HOME empêche le Java 32 bits de ramassé.

Je voudrais donc désélectionner Java_HOME juste avant de lancer l'IDE Flash.

Une façon d'y parvenir serait d'utiliser un script batch.

Mais n'y a-t-il pas un meilleur moyen? J'ai cherché une telle option dans les différents onglets de la fenêtre des propriétés du raccourci Windows, mais il ne semble pas en avoir. (J'ai toutefois découvert une case à cocher permettant d'exécuter le programme via le raccourci appelé Administrator.) Des suggestions?

Mise à jour: solution qui a fonctionné pour moi

:: type "C:\Program Files (x86)\FlashDevelop\FlashDevelop.bat"
@ECHO OFF
SETLOCAL
REM Prevent wrong 64-bit JVM from being picked up:
SET Java_HOME=
CALL "%~dpn0.exe"

Cela ouvrira une invite de commande que je pourrai ensuite simplement fermer. Vous pouvez faire en sorte que le raccourci ait l'icône de l'exécutable que vous appelez à partir de la commande Invite en demandant au shell via ses propriétés d'aller chercher une icône dans l'exécutable réel.

Je ne pouvais pas faire fonctionner les solutions impliquant START, ce qui ouvrait une nouvelle fenêtre cmd.exe sur ma machine lorsque le message suivant (qui ne savait pas pourquoi) était passé:

start "C:\Program Files (x86)\FlashDevelop\FlashDevelop.exe"

Je dois dire que mon cmd.exe est syntonisé - cela pourrait avoir une influence ici et là.

Mise à jour concernant le problème start: Comme on peut le savoir en suivant le lien dans les commentaires, la commande start utilise les premiers arguments de guillemets comme titre des fenêtres à créer… Ainsi, lorsque vous passez un chemin entre guillemets, il sera mal interprété comme le titre de la nouvelle fenêtre. La solution de contournement consiste à fournir un titre explicite en tant que premier argument, qui peut également être vide (start "" "some path\with spaces").

15
Lumi

Désolé de faire revivre un ancien fil, mais je pensais que cela pourrait probablement aider les personnes à la recherche d'une solution à ce problème:

Vous pouvez remplacer votre chemin Java_HOME directement dans votre FlexSDK. Pour ce faire, accédez au dossier 'bin /' de votre SDK (situé dans 'C:\Program Files (x86)\FlashDevelop\Tools\flexsdk \' si vous laissez le programme d'installation de FD le configurer pour vous, sinon vous savez probablement où il se trouve) et ouvrez 'jvm.config'.

3
Fred Deschenes

Je pense que vous ne pouvez pas le faire avec le raccourci lui-même. Le raccourci doit donc indiquer quelque chose qui définit la variable, puis lance votre programme. Bien sûr, il y a une infinité de façons de faire cela, mais le script de commande est probablement le plus simple.

Si vous utilisez start command.exe dans votre fichier bat, vous verrez une fenêtre de commande clignoter, mais elle ne collera pas.

Mise à jour: Cela fonctionne réellement pour mettre cela comme cible de raccourci.

C:\Windows\System32\cmd.exe /c "set HOME=c:\ && start C:\Windows\System32\notepad.exe"

Mise à jour 2: Cela ne fonctionnait pas avec un espace dans le chemin de commande. Mais ça le fait!

C:\Windows\System32\cmd.exe /c "set HOME=c:\ && path %path%;C:\Program Files (x86)\VideoLAN\VLC && start vlc.exe"
11
fstx

Notez que set est seulement temporaire, vous pouvez donc mettre les éléments suivants dans un lot:

set Java_HOME=
program.exe
3
Tamara Wijsman