Fiquei me perguntando por que o comando java -version
é acessível globalmente ?
Eu poderia executá-lo a partir de qualquer diretório e seu trabalho:
Como funciona?
É assim que minha PATH
variável de sistema se parece:
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;
%SystemRoot%\system32;
%SystemRoot%;
%SystemRoot%\System32\Wbem;
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\
Quanto a mim, java.exe
está localizado em%programfiles%\java\jre7\bin
command-line
Pacerier
fonte
fonte
java.exe
(oujava.com
etc) não estiver no seu,PATH
existe outra entrada de registro que pode especificar caminhos executáveis.Respostas:
Normalmente, há um grupo de diretórios nos quais os arquivos executáveis usados repetidamente são encontrados pelo Windows, mas, na prática, não há motivo específico para usar um comando como global ou não. Os desenvolvedores costumavam incluí-lo como "global" onde quer que eles quisessem; eles eram livres para fazê-lo. Se você deseja usar qualquer comando como "global", precisará adicioná-lo como uma "Variável de ambiente do Windows" . Para fazer isso, você pode usar os seguintes métodos :
Adicionando manualmente com "Propriedades do sistema Windows":
Usando a ferramenta complementar Setx.exe:
Não faz parte da instalação padrão do Windows XP, mas uma ferramenta de linha de comando chamada setx.exe está incluída nas Ferramentas de Suporte do Windows XP Service Pack 2. Essa ferramenta estende o comando set para que alterações permanentes nas variáveis de ambiente possam ser feitas. Por exemplo, para adicionar uma pasta C: \ Nova Pasta ao caminho, o comando seria
O comando "Set" pode ser usado em um prompt de comando junto com um redirecionamento para um arquivo de texto para fazer uma lista das variáveis de ambiente atuais. O comando pode ser
O nome do arquivo "C: \ env_list.txt" pode ser substituído por qualquer um de sua escolha.
A Microsoft também possui um VBScript que lista variáveis de ambiente nesta página .
Para quem tem experiência na edição do Registro, há outra maneira de fazer alterações nas variáveis de ambiente. As variáveis de ambiente do usuário são armazenadas no Registro na chave:
As variáveis do sistema são encontradas na chave:
Observe que qualquer variável de ambiente que esteja no formato que precise ser expandida (por exemplo,% PATH%) deve ser armazenada no registro como um valor de registro REG_EXPAND_SZ. A edição do Registro é principalmente para scripts usados pelos administradores de sistemas e não é recomendada para o usuário médio do PC.
Você pode encontrar mais informações sobre isso aqui.
fonte
%programfiles%\java\jre7\bin
. Esta pasta não aparecer na variável PATH do meu sistema ..Os "comandos globais" são determinados pelas suas variáveis de ambiente.
Dependendo do sistema operacional que você está usando, para configurá-lo é bem diferente.
A maneira mais genérica é por
Clique com o botão direito em "Meu Computador" e selecione "Propriedades".
No Windows7, você terá que selecionar "Configurações avançadas do sistema" no painel à esquerda.
Depois de abrir a caixa de diálogo Propriedades do sistema, selecione a guia "Avançado".
Na parte inferior, há um botão "Variáveis de ambiente"
No diálogo Variáveis de ambiente, você poderá configurar variáveis de ambiente por usuário ou para todo o sistema.
Por exemplo, a variável de sistema "Caminho" simplificada ficaria assim:
C: \ Arquivos de programas \ Java \ jre6 \ bin ; C: \ Ruby19 \ bin;
Os executáveis nesses caminhos podem ser chamados diretamente da Linha de Comando.
O motivo pelo qual você pode chamar todos calc, mspaint, cmd no diálogo Executar é porque C: \ windows \ system32 está na variável de ambiente Path.
Você pode adicionar caminhos personalizados às variáveis ambientais, tomando cuidado para não substituir o existente e separar os caminhos usando um ponto e vírgula. ";"
Você pode executar um executável a partir desse caminho diretamente na linha de comando sem digitar o caminho inteiro, como o comando java -version.
Para mais informações, consulte os seguintes links ...
variáveis ambientais
Compreender e configurar variáveis de ambiente
fonte
Aqui está um simples
which
que exibe todas as ocorrências de comando no PATH para as extensões PATHEXT atuais:Coloque isso
where.cmd
(permitindowhich
vir de outro lugar, se você conseguir!) E ligue com elewhere java
.Agora, no meu comentário acima, sugeri que se
java
faz não aparecem no seuPATH
, você pode verificar emHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
[ref] , mas depois realmente tentando isso, ele não funciona com a linha de comando, apenas com as coisas que o usoShellExecuteEx
, como em Iniciar, Executar e ostart
comando da CLI.fonte
Quando você insere um comando, o shell analisa uma variável de ambiente chamada PATH (% PATH%, $ PATH, dependendo do SO). Ele consulta todos os diretórios no PATH para ver se encontra um executável que corresponde ao comando que você digitou. O primeiro que encontrar será executado.
Veja outras respostas para algumas das várias maneiras de definir a variável PATH.
fonte