web-dev-qa-db-fra.com

apt-get install openjdk-7-jdk n'installe pas javac. Pourquoi?

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

Ensuite, je lance Sudo apt-get install openjdk-7-jdk et tout fonctionne. Mais alors, javac n’existe toujours pas et j’obtiens la même erreur que ci-dessus. Même chose avec openjdk-6-jdk. Pourquoi?

24
Travis Webb

Tant que l'installation est terminée sans erreur, il y a un exécutable javac sur votre système; pour une raison quelconque, cela n’était pas correctement lié à/usr/bin. Sudo ln -s /usr/lib/jvm/Java-7-openjdk/bin/javac /usr/bin/javac va créer ce lien et devrait résoudre votre problème.

9
BinaryMage

La manière correcte pour Debian/Ubuntu de configurer le javacqui est pointé par /usr/bin/javac consiste à utiliser la commande update-alternatives. Vous pouvez le faire de manière interactive et choisir parmi une liste d'options disponibles:

Sudo update-alternatives --config javac

Ou vous pouvez spécifier quelle option vous voulez sur la ligne de commande:

Sudo update-alternatives --set javac /usr/lib/jvm/Java-7-openjdk/bin/javac

En raison de la manière dont il stocke les informations, utiliser update-alternatives n’est pas exactement équivalent (mais plutôt préférable) à faire de /usr/bin/Java manuellement un lien symbolique vers votre javacname__. Voir man update-alternatives pour plus d'informations à ce sujet.

Si update-alternatives ne fonctionne pas, exécutez cette commande et essayez à nouveau:

Sudo ln -s /etc/alternatives/javac /usr/bin/javac
23
Nicolas

Voici ce que j'ai fait. Ça a marché.

J'ai d'abord installé le jdk pour Java 7 comme ceci:

Sudo apt-get install openjdk-7-jdk

Cela pourrait suffire: vérifiez si javac dans votre PATH en exécutant javac -version

Sinon, suivez la réponse de Nicholas, sauf qu'au lieu de Sudo update-alternatives --config javac, utilisez ceci:

Sudo update-alternatives --config Java

Et sélectionnez Java 7 à l'invite en tapant 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:
13
ratsbane