Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Dúvida no Ex. 7 da Aula 3 - Variáveis de ambiente e instalação do JDK

Olá para todos,

Notei que as alterações na variável PATH são aplicadas no cmd normal, contudo, no cmder elas não surgiram efeito, mesmo eu fechando e abrindo novamente.

Aconteceu isso com mais alguém e como fizeram para arrumar...reiniciar a maquina talvez?

Obrigado pela atenção.

6 respostas

Olá Guilherme, tudo bem?

As alterações que fazemos pelo painel de controle são nas variáveis de ambiente do sistema, e se você alterou e salvou lá, pode ter certeza que estão no seu PATH.

O que pode ter acontecido, é que você não esteja conseguindo vê-las no cmder caso o seu PATH seja muito grande, já que existe um limite de exibição de caracteres do PATH, que se não me engano são 2048 caracteres. Além do que , para funcionar, o Cmder injeta automaticamente algumas pastas no começo do seu PATH, o que pode deixa-lo maior ainda! É até por isso que no treinamento é ensinado a alterar o prompt apenas pelo CMD normal, que não acontece isso ;)

Como o PATH é exibido também é um detalhe importante, o comportamento é assim:

PATH_DO_SISTEMA + PATH_DO_USUARIO (Caso exista)

Ele concatena os dois paths.

Só que se você executa o Cmder ou o CMD em modo administrativo, ele remove as entradas repetidas do seu PATH, tornando o menor.

Ou seja, se os seus PATH's são assim :

Path do Sistema
C:\Users\Pasta_NODE;
C:\Users\Pasta_Python;
C:\Users\Pasta_JAVA;
Path do Usuário
C:\Users\Pasta_JAVA;
C:\Users\Pasta_DE_MUSICAS;

E você executar echo %PATH% em modo administrativo ele vai te mostrar na ordem que comentei acima, e sem repetir as entradas de PASTA_JAVA, ficando assim:

C:\Users\Pasta_NODE;C:\Users\Pasta_Python;C:\Users\Pasta_JAVA;C:\Users\Pasta_DE_MUSICAS;

Agora caso você execute em modo normal ( não administrativo) , você verá duas entradas de pasta_JAVA, o que pode gerar um path grande, que talvez não seja exibido em sua completude.

Concluindo e resumindo tudo:

O Path tem um limite de exibição de caracteres, que podem não estar sendo exibidos no seu caso, a exibição em modo administrativo é diferente (melhorada) do que em modo normal e se você alterou e salvou via painel de controle, seu path com certeza foi alterado.

Dica extra: No final desse capítulo existe um exercício sobre a ferramenta RapidEE , que facilita muito a visualização do PATH, tanto de administrador como o de usuário. Recomendo que você instale na sua máquina porque ajuda a debugar e tira qualquer dúvida ou incerteza que você possa ter :) .

Grande abraço!

Ola Douglas,

Obrigado pelas dicas, são muito bem vindas!

Eu instalei o RapidEE e conferi o PATH, tinha algumas coisas erradas ali que eu resolvi já, valeu.

O meu problema é que exclusivamente no Cmder (tanto em administrador quanto normal) é que não estão reconhecendo os comandos adicionados no PATH, como o "javac" e até o "choco"

na Prompt do Windows funciona perfeitamente ambos, até os scripts bat que fiz para a aula e para projetos pessoais, só no Cmder é que não funciona.

Até instalando o cmder pelo chocolatey ele não funciona essa especifica função.

Vou continuar buscando uma resposta para isso, obrigado pelo tempo.

Ola Guilherme,

Que bom que as dicas foram úteis. Posso tentar te ajudar a resolver isso. Pode colar o path que o Cmder mostra aqui ? O que você consegue exbir com o echo %PATH% .

Cole separado dele o path do Prompt ou uma screenshot do RapidEE com os Path's abertos por favor também.

Desconfio que seja um erro específico mas preciso do seus PATH's pra avaliar.

Beleza Douglas, vamos lá!

Tomei a liberdade de colocar algumas quebras de linhas pra a gente não ficar batendo cabeça nisso muito tempo com o texto todo junto, segue:

CMDER (javac e choco não funcionam)

C:\tools\cmder\bin;
C:\tools\cmder\vendor\msysgit\bin;
C:\tools\cmder\vendor\msysgit\mingw\bin;
C:\tools\cmder\vendor\msysgit\cmd;
C:\tools\cmder\vendor\msysgit\share\vim\vim74;
C:\tools\cmder;
C:\tools\cmder\vendor\conemu-maximus5\ConEmu;
C:\tools\cmder\vendor\conemu-maximus5;
C:\ProgramData\Oracle\Java\javapath;
C:\WINDOWS\system32;C:\WINDOWS;
C:\WINDOWS\System32\Wbem;
C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
C:\Program Files (x86)\Windows Live\Shared;
C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;
C:\Program Files (x86)\Skype\Phone\;
C:\Users\desenvolvimento\bin;
C:\Program Files\Microsoft DNX\Dnvm\;
C:\Program Files (x86)\MySQL\MySQL Fabric 1.5


CMD (javac e choco funcionam)
C:\ProgramData\Oracle\Java\javapath;
C:\WINDOWS\system32;
C:\WINDOWS;
C:\WINDOWS\System32\Wbem;
C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
C:\Program Files (x86)\Windows Live\Shared;
C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;
C:\Program Files (x86)\Skype\Phone\;
C:\Users\desenvolvimento\bin;
C:\Program Files\Microsoft DNX\Dnvm\;
C:\Program Files (x86)\MySQL\MySQL Fabric 1.5
'MySQL' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

Mas o curioso é que ambos tem a pasta C:\ProgramData\Oracle\Java\javapath; mas no cmd o javac funciona (fiz o setx do JDK hoje cedo nessa maquina) no cmder não funciona.

obrigado pelo suporte.

solução!

Opa, obrigado pelas quebras de linha, facilitou muito.

Como eu desconfiava, o problema está no MySQL! Deixe-me te explicar. Provavelmente você tem instalado no seu PC o MySQL, e quando ele é instalado, ele adiciona ao PATH a seguinte linha:

C:\Program Files (x86)\MySQL\MySQL Fabric 1.5.4 & MySQL Utilities 1.5.4 1.5\

Reparou que ele tem um & no meio ? Esse símbolo para o CMD é interpretado como uma quebra de linha, então ele "quebra" o caminho do PATH ao meio e tentar o executar o que vem em seguida, que é a palavra MySQL.

Tanto que até no echo %PATH% do cmd ele mostra " 'MySQL' não é reconhecido como um comando interno" . O caractere & é utilizado para interpretar múltiplos comandos, então quando ele vê o & do PATH do Mysql, ele acha que você quebrar leitura do PATH e executar o que vem em seguida, o que gera problemas.

Ou seja, o PATH está quebrado por conta desse caractere que vem na instalação do MySQL. E como o Cmder usa o CMD por debaixo dos panos, ele acaba não reconhecendo os comandos como choco ou javac pois ele encotra um PATH quebrado e não sabe o que fazer.

A solução que encontrei para quem tem esse problema, é envolver a linha que o mysql adiciona com aspas duplas (" ");

Sugiro que você vá no seu RapidEE e altere a linha do PATH: C:\Program Files (x86)\MySQL\MySQL Fabric 1.5.4 & MySQL Utilities 1.5.4 1.5\

para que ela fique envolvida com aspas duplas, ficando assim:

"C:\Program Files (x86)\MySQL\MySQL Fabric 1.5.4 & MySQL Utilities 1.5.4 1.5\"

Assim o caractere & será escapado e isso deve resolver seu problema. Faça lá e me diga se resolveu!

Sim!!

Agora funcionou perfeito, suspeitava que o MySQL fosse o problema mesmo.

Obrigado Douglas. ajudou muito

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software