apt-get install O openjdk-7-jdk não instala o javac. Por quê?

23
The program 'javac' can be found in the following packages:
 * openjdk-6-jdk
 * ecj
 * gcj-4.4-jdk
 * gcj-4.6-jdk
 * gcj-4.5-jdk
 * openjdk-7-jdk

Então eu corro sudo apt-get install openjdk-7-jdk e tudo funciona. Mas então javac ainda não existe e recebo o mesmo erro acima. Mesma coisa com openjdk-6-jdk . Por quê?

    
por Travis Webb 30.03.2012 / 01:28

3 respostas

9

Contanto que a instalação seja concluída sem erros, é um executável javac em seu sistema; por algum motivo, simplesmente não foi corretamente ligado ao / usr / bin. sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javac /usr/bin/javac criará esse link e deverá corrigir seu problema.

    
por BinaryMage 30.03.2012 / 03:12
23

A maneira correta do Debian / Ubuntu de configurar para qual javac é apontada por /usr/bin/javac é usar o comando update-alternatives . Você pode fazer isso de forma interativa e selecionar em uma lista de opções disponíveis:

sudo update-alternatives --config javac

Ou você pode especificar qual opção deseja na linha de comando:

sudo update-alternatives --set javac /usr/lib/jvm/java-7-openjdk/bin/javac

Devido à maneira como armazena as informações, usar update-alternatives não é exatamente equivalente (mas, em vez disso, é considerado preferível) para tornar manualmente /usr/bin/java um link simbólico para seu javac de escolha. Consulte man update-alternatives para obter mais informações sobre isso.

Se update-alternatives não funcionar, execute este comando e tente novamente:

sudo ln -s /etc/alternatives/javac /usr/bin/javac
    
por Nicolas 03.06.2012 / 22:18
13

Aqui está o que eu fiz. Funcionou.

Primeiro eu instalei o jdk para o Java 7 assim:

sudo apt-get install openjdk-7-jdk

Isso pode ser o suficiente: verifique e veja se o javac no seu PATH executando javac -version

Se não, então siga a resposta de Nicholas, exceto que em vez de sudo update-alternatives --config javac use isto:

sudo update-alternatives --config java

Selecionamos o Java 7 no prompt, digitando 2 :

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      auto mode
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
* 2            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      manual mode

Press enter to keep the current choice[*], or type selection number:
    
por ratsbane 21.08.2012 / 07:10

Tags