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

24
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-jdke tudo funciona. Mas javacainda não existe e recebo o mesmo erro acima. A mesma coisa com openjdk-6-jdk. Por quê?

Travis Webb
fonte

Respostas:

10

Enquanto a instalação foi concluída sem erros, não é um executável javac no seu sistema; por algum motivo, simplesmente não foi vinculado corretamente a / usr / bin. sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javac /usr/bin/javaccriará esse link e deve resolver seu problema.

BinaryMage
fonte
6
E se não estiver instalado corretamente. Não vejo javac no próprio diretório.
Veer Shrivastav
23

A maneira correta de configurar o Debian / Ubuntu, javacapontada por, /usr/bin/javacé usar o update-alternativescomando 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, o uso update-alternativesnão é exatamente equivalente (mas é considerado preferível) a criar manualmente /usr/bin/javaum link simbólico à sua javacescolha. Veja man update-alternativespara mais informações sobre isso.

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

sudo ln -s /etc/alternatives/javac /usr/bin/javac
Nicolas
fonte
13

Aqui está o que eu fiz. Funcionou.

Primeiro eu instalei o jdk para Java 7 assim:

sudo apt-get install openjdk-7-jdk

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

Caso contrário, siga a resposta de Nicholas, exceto que, em vez de sudo update-alternatives --config javacusar isso:

sudo update-alternatives --config java

E selecione 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:
ratazana
fonte
2

Não tenho certeza se isso ajuda, mas funcionou para mim. Eu tive esse problema, o javac simplesmente não estava lá, em nenhum lugar, provavelmente porque eu instalei apenas o jre . A instalação do jdk após o jre o corrigiu.

sudo apt-get install openjdk-8-jre
sudo apt-get install openjdk-8-jdk
Sergiu
fonte