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

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

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

Трэвис Уэбб
источник

Ответы:

10

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

BinaryMage
источник
6
Что делать, если он установлен неправильно. Я не вижу javac в самом каталоге.
Вир Шривастав,
23

Правильный способ настройки 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
никола
источник
13

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

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

sudo apt-get install openjdk-7-jdk

Этого может быть достаточно: проверьте и посмотрите, есть ли javac в вашем PATH, запустив 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 mode

Press enter to keep the current choice[*], or type selection number:
ядовитое растение
источник
2

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

sudo apt-get install openjdk-8-jre
sudo apt-get install openjdk-8-jdk
Серджиу
источник