RESOLVIDO Variáveis de Ambiente

Galera estou tentando criar um script .bat para setar as variáveis de ambiente no windows 7 e no XP mais não estou conseguindo, tipo ele roda não apresenta nenhum erro mais quando vou lá olhar lá nas variáveis ele não foi setado, alguém sabe me dizer como fazer?

Definir variáveis de ambiente num arquivo BAT - que, por sua vez, é uma sessão de prompt - fará com que as mudanças fiquem disponíveis apenas para aquela sessão de prompt. Assim, quando a sessão de prompt acabar, as variáveis que você definiu serão perdidas. Para que as variáveis fiquem disponíveis de maneira permanente para todas as sessões de prompt e programas, será necessário defini-las pelo Painel de Controle. (Menu Iniciar -> Painel de Controle -> ícone “Sistema” -> aba “Avançado” -> botão “Variáveis de Ambiente”).
http://superuser.com/questions/25037/change-environment-variables-as-standard-user-windows-7

Sim eu sei roger_rf porém construi uma aplicação em swing e ele terá um executável instalador, então gostaria de setar isso via script no momento da instalação, sem precisar que o usuário faça isso na mão teria como?

isso deve ser devido as permissões do windows 7…

Depende da tecnologia que você estiver usando para o instalador. O NSIS, que já utilizei, oferece maneiras de definir variáveis de ambiente:
http://nsis.sourceforge.net/Setting_Environment_Variables#Setting_Environmental_Variables_Permanently
Se você tiver certeza de que a versão do Windows instalada no seu cliente oferece o comando “setx”, você poderá usá-lo em seu arquivo BAT:
http://technet.microsoft.com/en-us/library/cc755104(v=ws.10).aspx

roger_rf esse setx achei bacana mais não consegui rodar ele aqui no .bat diz que não é um comando válido, teria algum exemplo do uso dele ai?

Você pode criar um shortcut para seu programa que seta as variáveis de ambiente e passa os parâmetros adequados para a execução do seu programa. Por exemplo:

@echo off JAVA_HOME=C:\java\jdk1.7.0_05 SET PATH=%PATH%;%JAVA_HOME%\bin java -classpath C:\MyAppJars\ java -jar App.jar

Até onde sei, o comando setx só vem instalado por padrão no Windows 7. Para outras versões do Windows, é preciso instalá-lo à parte. No caso do Windows XP, use o pacote a seguir:
http://www.microsoft.com/en-us/download/details.aspx?id=18546

Bom então não tem como setar uma variável de ambiente que fique diretamente no sistema operacional sem ficar somente naquela sessão!!! achei que era mais flexivel pois nunca tinha feito isso sempre setei na mão, o que eu to fazendo aqui é assim:


@echo off  
SET JAVA_HOME=C:\java\jdk1.7.0_05  
SET PATH=%PATH%;%JAVA_HOME%\bin  

Mais vou lá nas variaveis depois e ele não aparece lá e testo com o javac também não aparece que o java esta setado.

Eu não gosto de mexer em variáveis de ambiente. A rigor eu não mexo nem no path da minha máquina.

É melhor que você crie um shortcut para uma batch que inicie seu programa. Com isso, você terá pleno controle das variáveis de ambiente, sem ter de forçar setar variáveis de ambiente que podem atrapalhar outros programas na sua máquina (como por exemplo os instaladores do client do Oracle e do QuickTime, que tem o irritante hábito de mexer no CLASSPATH e deixar completamente esquisito).

[quote=diogo soares]Bom então não tem como setar uma variável de ambiente que fique diretamente no sistema operacional sem ficar somente naquela sessão!!! achei que era mais flexivel pois nunca tinha feito isso sempre setei na mão, o que eu to fazendo aqui é assim:


@echo off  
SET JAVA_HOME=C:\java\jdk1.7.0_05  
SET PATH=%PATH%;%JAVA_HOME%\bin  

Mais vou lá nas variaveis depois e ele não aparece lá e testo com o javac também não aparece que o java esta setado.[/quote]

Você não entendeu o que eu disse. O shortcut chama o batch file que irá configurar as variáveis de ambiente e chama o seu aplicativo. Assim, na sessão de execução do seu aplicativo as variáveis de ambiente estarão setadas.

Fiz o que vc disse matheuslmota, porém está dando o seguinte erro.:


@echo off  
SET JAVA_HOME=C:\java\jdk1.6.0_26  
SET PATH=%PATH%;%JAVA_HOME%\bin  
java -classpath C:\Users\Diogo\Desktop\Rotinas\dist  
java -jar Rotinas.jar 

O Erro apresentado:

ERROR: Could not open 'C:\Program Files\java\ jre\lib\i386\jvm.cfg

Ele não está conseguindo setar as variaveis

Parece que você tem duas versões da JVM instalada. Daí não dá pra abrir seu java.exe. É isso mesmo?

Verdade tinha outra versão instalada diretamente no windows, desinstalei ele agora aparece o erro.:

'java' não é um comando interno ou externo....

agora ele não está achando mesmo as variáveis

Notei que ele está alterando o PATH sentando o que eu passei, só não está criando o JAVA_HOME

CONSEGUI GALERA, agradeço a todos por me ajudarem agora vou correr atrás de um instalador para gerar o pacote desse cara…

O código ficou assim.:



@echo off    
SET JAVA_HOME=C:\java\jdk1.6.0_26    
SET PATH=%PATH%;%JAVA_HOME%\bin 
cd \
cd %JAVA_HOME%\bin   
java -classpath C:\Users\Diogo\Desktop\Rotinas\dist    
java -jar Rotinas.jar   

Aqui no trabalho usamos o Inno Setup, que é gratuito e funciona muito bem.
Existe uma ferramenta chamda ISTools, que é um assistente para criar o script do inno setup.

Valeu mesmo matheus vou dar uma olhada, cara sei que ja fechei o topico mais so para aproveitar o gancho, quando roda o .bat ele fica o cmd aberto até que o sistema feche tem como eliminar essa janela?

Cara, infelizmente acho que não dá pra fechar, isso é um inconveniente do prompt mesmo.

Usando esse link consegui fazer ele não abrir o prompt mais essa solução seria somente para windows, mais fica a dica


http://windows7themes.net/run-command-prompt-in-background-silently-without-opening-a-window.html