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створить це посилання і має вирішити вашу проблему.


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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.