Inicie o programa Windows com variável de ambiente personalizada

16

Minha JAVA_HOMEna minha máquina de desenvolvimento - que é o Windows 7 Pro 64 Bit - aponta para um Java de 64 bits, e isso é bom em geral. No entanto, acabei de instalar um programa - ou seja, o FlashDeveloper IDE - para o qual essa configuração não é adequada: um Java de 32 bits é necessário e a JAVA_HOMEconfiguração impede que o Java de 32 bits seja capturado.

Por isso, gostaria de desmarcar JAVA_HOMEantes de iniciar o Flash IDE.

Uma maneira de conseguir isso seria através de um script em lote.

Mas não existe uma maneira melhor? Procurei nas várias guias da janela de propriedades do atalho do Windows por essa opção, mas parece não haver nenhuma. (Descobri, no entanto, uma caixa de seleção para executar o programa através do atalho como Administrator.) Alguma sugestão?

Atualização: solução que funcionou para mim

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

Isso abrirá um prompt de comando que eu posso fechar. Você pode fazer com que o atalho tenha o ícone do executável que você está chamando no prompt de comando instruindo o shell através das propriedades do atalho a procurar um ícone dentro do executável real.

Não consegui que as soluções envolvidas STARTfuncionassem, o que abre uma nova cmd.exejanela na minha máquina quando passou o seguinte (não faço ideia do porquê):

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

Devo dizer que o meu cmd.exeestá afinado - que pode ter uma influência aqui e ali.

Atualização sobre o startproblema: como pode ser aprendido após o link nos comentários, o startcomando usa os primeiros argumentos entre aspas como o título das janelas a serem criadas. Portanto, quando você passa um caminho entre aspas, ele será mal interpretado como o título da nova janela. A solução alternativa é fornecer um título explícito como primeiro argumento, que também pode estar vazio ( start "" "some path\with spaces").

Lumi
fonte
2
Veja stackoverflow.com/questions/72671/… para a edição inicial
fglez

Respostas:

3

Desculpe por reviver um tópico antigo, mas achei que isso provavelmente poderia ajudar as pessoas a procurar uma solução para esse problema:

Você pode substituir o caminho JAVA_HOME diretamente no seu FlexSDK. Para fazer isso, navegue até a pasta 'bin /' do SDK (deve estar em 'C: \ Arquivos de Programas (x86) \ FlashDevelop \ Tools \ flexsdk \' se você permitir que o instalador do FD o configure, caso contrário você provavelmente já sabe onde está) e abra 'jvm.config'.

Fred Deschenes
fonte
12

Eu acho que não acho que você pode fazê-lo no próprio atalho, então o atalho precisa apontar para algo que defina a variável e, em seguida, inicie o seu programa. Obviamente, existem infinitas maneiras de fazer isso, mas o script de comando é provavelmente o mais simples.

Se você usar start command.exeseu arquivo bat, você verá uma janela de comando piscando, mas ela não permanecerá.

Atualização: ele realmente funciona para colocar isso como um destino de atalho.

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

Atualização 2: Isso não funcionou com um espaço no caminho do comando. Mas isso faz!

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

Observe que isso seté apenas temporário; portanto, você pode colocar o seguinte em um lote:

set JAVA_HOME=
program.exe
Tamara Wijsman
fonte