Apt-get install openjdk-7-jdk не устанавливает javac. Почему?

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

Тогда я убегаю sudo apt-get install openjdk-7-jdk и все работает. Но потом javac по-прежнему не существует, и я получаю ту же ошибку, что и выше. То же самое с openjdk-6-jdk. Почему?

Правильный способ настройки Debian / Ubuntu, который javac на это указывает /usr/bin/javac состоит в том, чтобы использовать update-alternatives команда. Вы можете сделать это в интерактивном режиме и выбрать из списка доступных опций:

sudo update-alternatives --config javac

Или вы можете указать, какой вариант вы хотите использовать в командной строке:

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

Из-за того, как он хранит информацию, используя update-alternatives не совсем эквивалентно (но вместо этого считается предпочтительным) ручному изготовлению /usr/bin/java символическая ссылка на ваш javac по собственному выбору. Видеть man update-alternatives для получения дополнительной информации об этом.

Если update-alternatives не работает, затем запустите эту команду и повторите попытку:

sudo ln -s /etc/alternatives/javac /usr/bin/javac

Вот что я сделал. Это сработало.

Сначала я установил jdk для Java 7 следующим образом:

sudo apt-get install openjdk-7-jdk

Этого может быть достаточно: проверьте и посмотрите, есть ли javac на вашем ПУТИ, выполнив javac -version

Если нет, то следуйте ответу Николаса, за исключением того, что вместо sudo update-alternatives --config javac используйте это:

sudo update-alternatives --config java

И выбрал Java 7 в командной строке, набрав 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 modePress enter to keep the current choice[*], or type selection number:

До тех пор, пока установка завершается без ошибок, нет является исполняемый файл javac в вашей системе; по какой-то причине он просто не был правильно связан с /usr/bin. sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javac /usr/bin/javac создаст эту ссылку и должен решить вашу проблему.

Не уверен, что это поможет, но для меня это сработало. У меня была такая проблема, явак просто не было там, нигде, вероятно, потому, что я только установил jre. Установка jdk после jre исправил это.

sudo apt-get install openjdk-8-jresudo apt-get install openjdk-8-jdk

После чего установите конфигурации, следуя подсказке:

sudo update-alternatives --config javasudo update-alternatives --config javac

Затем вы можете проверить, правильно ли вы настроили с помощью:

java -versionjavac -version