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

16

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

Je voudrais donc désélectionner JAVA_HOMEjuste avant de lancer Flash IDE.

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

Mais n'y a-t-il pas une meilleure façon? J'ai recherché une telle option dans les différents onglets de la fenêtre des propriétés du raccourci Windows, mais il ne semble pas y en avoir. (J'ai toutefois découvert une case à cocher pour exécuter le programme via le raccourci en tant que 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 fermer. Vous pouvez faire en sorte que le raccourci ait l'icône de l'exécutable que vous appelez à partir de l'invite de commande en demandant au shell via les propriétés du raccourci d'aller chercher une icône à l'intérieur de l'exécutable réel.

Je n'ai pas pu obtenir les solutions impliquant STARTde travailler, ce qui ouvre une nouvelle cmd.exefenêtre sur ma machine lorsque j'ai passé ce qui suit (aucune idée pourquoi):

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

Je dois dire que mon cmd.exeest réglé - cela pourrait avoir une influence ici et là.

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

Lumi
la source
2
Voir stackoverflow.com/questions/72671/… pour le problème de démarrage
fglez

Réponses:

3

Désolé d'avoir relancé 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 (devrait être dans 'C: \ Program Files (x86) \ FlashDevelop \ Tools \ flexsdk \' si vous laissez le programme d'installation FD le configurer pour vous, sinon vous savez probablement où il se trouve) et ouvrez 'jvm.config'.

Fred Deschenes
la source
12

Je pense que vous ne pouvez pas le faire dans le raccourci lui-même, donc le raccourci doit pointer vers quelque chose qui définit la variable, puis lance votre programme. Bien sûr, il existe des façons infinies de le faire, mais le script de commande est probablement le plus simple.

Si vous utilisez start command.exedans votre fichier bat, vous obtiendrez une fenêtre de commande clignotante, mais elle ne restera 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 c'est le cas!

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

Notez que ce setn'est que temporaire, vous pouvez donc simplement mettre les éléments suivants dans un lot:

set JAVA_HOME=
program.exe
Tamara Wijsman
la source