Os comandos são procurados em $PATH
na ordem em que os diretórios são listados. No seu caso, é provável a partir de sua descrição que não há /home/rumtscho/bin/javac
, não /usr/local/bin/javac
, mas /usr/bin/javac
que é o compilador Java do GCC (ou um link simbólico para ele).
O SuSE possui um mecanismo de "alternativas" para lidar com programas que possuem várias implementações. De acordo com a documentação do SuSE sobre a instalação do Java , os pacotes Java do SuSE usam esse mecanismo. Se o pacote do Oracle respeitar essa interface, execute
update-alternatives --config javac
para selecionar seu compilador Java favorito (você deve fazer o mesmo com java
para selecionar um ambiente de tempo de execução correspondente).
Se o binário do Oracle não for mencionado na lista, você poderá alternar manualmente para ele:
ln -snf /usr/java/jdk1.7.0_04/bin/{java,javac} /etc/alternatives/
Como alternativa (mas isso não é recomendado se o método de alternativas funcionar), você pode criar um link simbólico para seu javac
preferencial no diretório ~/bin
(por usuário) ou em /usr/local/bin
(todo o sistema configuração).
ln -s ../../java/jdk1.7.0_04/bin/javac /usr/local/bin
Outra maneira seria reordenar seu PATH
para ter o diretório do Oracle JDK em primeiro lugar. No seu ~/.profile
, adicione /usr/java/jdk1.7.0_04/bin
no início do seu PATH
. Você pode aproveitar a oportunidade para removê-lo, se ele já estava no $PATH
, para evitar entradas duplicadas (que são inofensivas, exceto por uma pequena lentidão ao procurar um comando no final de $PATH
ou procurar um não nome do comando existente).
prepend_to_path () {
PATH=":$PATH:"
case "$PATH" in
*":$1:"*) PATH="${PATH%%":$1:"*}:${PATH#*":$1:"}";;
esac
PATH="$1${PATH%:}"
}
prepend_to_path /usr/java/jdk1.7.0_04/bin