Por que “java” é um comando válido no terminal (bash) se não estiver no meu caminho?

2

No OSX, no terminal, usando o comando:

echo $PATH

me fornece a seguinte saída:

/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/Applications/Android Studio.app/sdk/platform-tools

Você pode ver que uma referência ao JAVA não é lá. Ainda no terminal, quando digito:

java

Ele é visto como um comando e saídas válidos:

Usage: java [-options] class [args...] (to execute a class) or java [-options] -jar jarfile [args...] (to execute a jar file) where options include: -d32 use a 32-bit data model if available -d64 use a 64-bit data model if available -server to select the "server" VM The default VM is server, because you are running on a server-class machine.

Minha pergunta é: como reconhecer meu comando java se ele não é referenciado em minha variável PATH e não é referenciado no diretório que minha instância de terminal está explorando atualmente?

Obrigado pela ajuda.

    
por Dick Lucas 12.09.2014 / 20:51

1 resposta

3

Java está em / usr / bin no meu sistema OSX 10.9.4:

$ which java
/usr/bin/java

Esse diretório também está em seu caminho de comando.

A entrada em / usr / bin é um link simbólico. Talvez você esteja esperando que o diretório atual de instalação do java esteja em seu caminho, mas isso não precisa ser o caso. Criar links simbólicos em / usr / bin é uma prática comum.

$ ls -l /usr/bin/java
lrwxr-xr-x  1 root  wheel  74 May 17 17:02 /usr/bin/java -> 
    /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
    
por 12.09.2014 / 21:01