Заменить openjdk на oracle-jdk в Ubuntu

53

У меня есть система Ubuntu, и я хочу заменить мой openjdk на oracle-jdk.

Однако, если я удаляю свой open-jdk и затем устанавливаю oracle-jdk, когда я пытаюсь установить некоторые пакеты, они хотят установить openjdk, а я этого не хочу.

Есть ли способ установить эти пакеты поверх oracle-jdk? Одним из таких пакетов является freemind.

маленькая али
источник
Какие пакеты требуют open-jdk, который вы хотите установить? (помимо свободного разума)
Сет
Я поймал оракул-JDK, добавив себя в PATHв /etc/profile.d/jdk.sh. Удаление этого файла и запуск новой оболочки позволили update-alternativesсделать свою работу.
Jozxyqk

Ответы:

78

Вы можете полностью удалить OpenJDKновую установку Oracle Java JDK, выполнив следующие действия:

  1. Удалить OpenJDKполностью этой командой:

    sudo apt-get purge openjdk-\*
  2. Загрузите Oracle Java JDK здесь .

    Примечание: загрузите соответствующий файл, например, если у вас система x64 Ubuntu (т.е. Debian), файл загрузки называется так:jdk-8u51-linux-x64.tar.gz

    Чтобы узнать, какая версия является вашей ОС, проверьте здесь

  3. Создайте папку с именем javaв /usr/local/этой команде:

    sudo mkdir -p /usr/local/java
  4. Скопируйте скачанный файл в каталог /usr/local/java. Для этого перейдите cdв каталог, где находится загруженный файл, и используйте эту команду для копирования этого файла в /usr/local/java/:

    sudo cp -r jdk-8u51-linux-x64.tar.gz /usr/local/java/
  5. CD в /usr/local/java/каталог и распакуйте этот скопированный файл с помощью этой команды:

    sudo tar xvzf jdk-8u51-linux-x64.tar.gz
  6. После извлечения вы должны увидеть папку с именем jdk1.8.0_51.

  7. Обновите PATHфайл, открыв /etc/profileфайл с помощью команды sudo nano /etc/profileи вставив в конец файла следующее:

    JAVA_HOME=/usr/local/java/jdk1.8.0_51
    PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
    export JAVA_HOME
    export PATH
  8. Сохранить и выйти.

  9. Сообщите системе, что новая версия Oracle Java доступна с помощью следующих команд:

    sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk1.8.0_51/bin/java" 1
    sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk1.8.0_51/bin/javac" 1
    sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jdk1.8.0_51/bin/javaws" 1
  10. Сделайте Oracle Java JDK по умолчанию с помощью следующих команд:

    sudo update-alternatives --set java /usr/local/java/jdk1.8.0_51/bin/java
    sudo update-alternatives --set javac /usr/local/java/jdk1.8.0_51/bin/javac
    sudo update-alternatives --set javaws /usr/local/java/jdk1.8.0_51/bin/javaws
  11. Перезагрузите системный PATH / etc / profile с помощью этой команды:

    source /etc/profile
  12. Перезагрузите вашу систему.

  13. Проверьте версию Java JDK по java -versionкоманде. Если установка прошла успешно, она будет отображаться следующим образом:

    java version "1.8.0_51"
    Java(TM) SE Runtime Environment (build 1.8.0_51-xxx)
    Java HotSpot(TM) Server VM (build 25.51-xxx, mixed mode)

Это оно!

Примечание: мы предположили, что загруженный файл назван jdk-8u51-linux-x64.tar.gzи использовали это имя во всех командах, использованных в шагах 2, 4 и 5. Это может зависеть от типа ОС, типа процессора (то есть 32-битного или 64-битного)

Nithi2023
источник
1
Помимо правильного способа ручной установки oracle-jdk, в WebUpd8 PPA есть пакет, который также будет обновлен. Поэтому нет необходимости устанавливать каждую новую версию вручную. Смотрите мой ответ здесь: askubuntu.com/questions/466166/…
lschuetze
2
Вместо использования каталога jdk1.8.0_51 создайте символическую ссылку с именем «jdk» на этот каталог, и при следующем обновлении просто извлеките tar-архив JDK и заново создайте символическую ссылку, и все готово.
ColinM
для пользователей Ubuntu: здесь есть надежный метод @mihaic, который мне подходит
Carson Ip
Вы рок-звезда
Bhupinder
Обратите внимание, что если вы хотите загрузить JDK в Ubuntu Server (без графического интерфейса пользователя), вы можете использовать следующую команду: wget --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/9.0.4+11/c2514751926b4512b076cc82f959763f/jdk-9.0.4_linux-x64_bin.tar.gz" Вы всегда можете скопировать последнюю версию, вернувшись на страницу загрузки Oracle и сгенерировав новую.
Тоан Нгуен
20

Вам не нужно удалять openjdk, чтобы использовать / установить jdk оракула. Просто установите jdk оракула и настройте, какой java вы хотите использовать, настроив его:

sudo update-alternatives --config java

Вы можете найти больше помощи здесь: https://help.ubuntu.com/community/Java

Myx
источник
Мне нужен способ иметь только одну Java на моем Ubuntu. Тпй.
Маленькая Али
Это отличный ответ. Groovy в Debian jessie вызывает установку openjdk, но для работы, которую я выполняю, требуется (не спрашивать) Oracle JDK для компиляции. Эта опция позволила мне оставить и openjdk, и oracle jdk установленными, так что все играет хорошо. Спасибо!
sanimalp
11

Проверено в Ubuntu 14.04 / 16.04. В три этапа:

  1. Установите oracle-java7-installer(или oracle-java8-installer) из репозитория webupd8team

    sudo add-apt-repository ppa:webupd8team/java
    sudo apt-get update
    sudo apt-get install oracle-java7-installer
  2. Убедитесь, что он работает с помощью следующей команды:

    java -version

    Должно отображаться что-то похожее на:

    java version "1.7.0_76"
    Java(TM) SE Runtime Environment (build 1.7.0_76-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 24.76-b04, mixed mode)
  3. (Необязательно) Удалите open-jdk, если вы действительно хотите / должны:

    sudo apt-get purge openjdk-\*

Вы можете найти больше информации здесь

toto_tico
источник
Следовал вашим указаниям и получил Unable to find java executable. Check JAVA_HOME and PATH environment variables.ошибку
Зак С
удивленный тем, что нашел свой собственный ответ год спустя, это все еще работает для Ubuntu 16.04 иoracle-java8-installer
toto_tico
Получил это при добавлении репо:W: The repository 'http://ppa.launchpad.net/natecarlson/maven3/ubuntu xenial Release' does not have a Release file. N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
crockpotveggies
8

После удаления openjdk, попробуйте этот подход, который работал для меня:

Установите oracle jdk 7 на сервер Ubuntu (протестировано с Ubuntu 12.0.4)

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

дополнительная информация здесь: https://launchpad.net/~webupd8team/+archive/java

(обратите внимание, чтобы адаптировать это для вашей версии JDK)

mihaic
источник