O que acontece quando há 2 versões de um comando de terminal instalado?

4

Por exemplo, tenho o OpenJDK 6 e 7 instalados. Se eu corro     javac foo.java will é compilar meu programa como um programa Java 6 ou um programa Java 7?

    
por Orcris 23.01.2012 / 21:28

3 respostas

4

As distribuições baseadas no Debian têm o chamado sistema de "alternativas", que permite ter mais de um programa instalado que execute a mesma função (isso também inclui versões diferentes do mesmo programa, como Java 6 e Java 7). Como o @ user15936 aponta, o sistema funciona manipulando links simbólicos, então o "javac" pode apontar para o executável do OpenJDK 6 ou do OpenJDK 7

O comando para manipular os links simbólicos mencionados acima (o processo é, na verdade, mais complexo do que isso, pois inclui alguma configuração, por exemplo, alterações nas páginas de trabalho etc.) - é chamado de update-alternatives . Você pode aprender como usá-lo digitando man update-alternatives no terminal.

Para responder diretamente a sua pergunta, outra maneira de determinar qual executável javac será invocado é fazendo

update-alternatives --display javac
    
por Sergey 24.01.2012 / 00:22
1

A resposta é o que estiver vinculado a /usr/bin/javac

Isso será executado.

Você pode ver isso indo até /usr/bin/ e veja o link que o javac está conectado fazendo ls -l javac .

    
por harish.venkat 23.01.2012 / 21:33
-1

Você deve digitar um terminal javac -version e lá você receberá sua resposta ...

    
por JuanToroMarty 23.01.2012 / 21:32