Inicie el programa de Windows con una variable de entorno personalizada

16

Mi JAVA_HOMEen mi máquina de desarrollo, que es Windows 7 Pro 64 Bit, apunta a un Java de 64 bits, y eso está bien en general. Sin embargo, acabo de instalar un programa, a saber, el IDE de FlashDeveloper, para el que esta configuración no está bien: en su lugar, se requiere un Java de 32 bits, y la JAVA_HOMEconfiguración evita que se recoja el Java de 32 bits.

Por lo tanto, me gustaría desarmar JAVA_HOMEjusto antes de iniciar Flash IDE.

Una forma de lograr esto sería a través de un script por lotes.

¿Pero no hay una mejor manera? Busqué en las diversas pestañas de la ventana de propiedades de acceso directo de Windows para dicha opción, pero parece que no hay ninguna. (Sin embargo, descubrí una casilla de verificación para ejecutar el programa a través del acceso directo como Administrator.) ¿Alguna sugerencia?

Actualización: solución que funcionó para mí

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

Eso abrirá un símbolo del sistema que luego puedo cerrar. Puede hacer que el acceso directo tenga el ícono del ejecutable al que está llamando desde el símbolo del sistema, indicando al shell a través de las propiedades del atajo que busque un icono dentro del ejecutable real.

No pude lograr que las soluciones involucraran el STARTtrabajo, lo que abre una nueva cmd.exeventana en mi máquina cuando se pasa lo siguiente (no tengo idea de por qué):

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

Debo decir que mi cmd.exeestá sintonizado , eso podría tener una influencia aquí y allá.

Actualización sobre el startproblema: como se puede aprender siguiendo el enlace en los comentarios, el startcomando usa los primeros argumentos entre comillas como el título de las ventanas que se crearán ... Entonces, al pasar una ruta entre comillas, se interpretará mal como el Título de la nueva ventana. La solución consiste en proporcionar un título explícito como primer argumento, que también puede estar vacío ( start "" "some path\with spaces").

Lumi
fuente
2
Consulte stackoverflow.com/questions/72671/… para ver el problema de inicio
fglez

Respuestas:

3

Perdón por revivir un hilo antiguo, pero pensé que esto probablemente podría ayudar a las personas que buscan una solución a este problema:

Puede anular su ruta JAVA_HOME directamente en su FlexSDK. Para hacer esto, navegue a la carpeta 'bin /' de su SDK (debe estar en 'C: \ Archivos de programa (x86) \ FlashDevelop \ Tools \ flexsdk \' si deja que el instalador FD lo configure por usted, de lo contrario probablemente sepa donde está) y abra 'jvm.config'.

Fred Deschenes
fuente
12

Creo que no creo que pueda hacerlo en el acceso directo en sí, por lo que el acceso directo debe apuntar a algo que establezca la variable y luego inicie su programa. Por supuesto, hay infinitas formas de hacerlo, pero el script de comando es probablemente el más simple.

Si usa start command.exeen su archivo bat, obtendrá una ventana de comando parpadeando, pero no se quedará.

Actualización: en realidad funciona para poner esto como un objetivo de acceso directo.

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

Actualización 2: Eso no funcionó con un espacio en la ruta de comando. ¡Pero esto sí!

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

Tenga en cuenta que setsolo es temporal, por lo que puede poner lo siguiente en un lote:

set JAVA_HOME=
program.exe
Tamara Wijsman
fuente