Загрузка JDK Java на Linux через wget приводит к отображению страницы лицензии вместо установки
Описание проблемы:
Я пытаюсь скачать Java с сайта Oracle, однако вместо этого я получаю страницу, на которой говорится, что необходимо согласиться с условиями лицензии OTN.
Страница содержит сообщение:
Извините!
Для загрузки продуктов с Oracle Technology Network вы должны согласиться с условиями лицензии OTN.
Убедитесь, что...
- Ваш браузер поддерживает "куки" и JavaScript включен.
- Вы нажали кнопку "Принять лицензию" для продукта, который хотите скачать.
- Вы пытаетесь скачать продукт в течение 30 минут после согласия с лицензией.
Как я могу скачать и установить Java?
5 ответ(ов)
Загрузка Java с командной строки всегда была довольно проблематичной. Что я делал недавно, так это запускал загрузку в браузере Firefox (возможно, другие браузеры тоже работают) на своем ноутбуке, приостанавливал ее в окне загрузок и использовал пункт меню "Копировать ссылку для загрузки" в контекстном меню для файла, который загружается. Затем этот URL можно использовать на Linux-машине для загрузки того же файла. Я предполагаю, что срок действия URL небольшой. Удобно не скажешь, но в целом работает.
Обновлено для JDK 8u171 RPM
wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.rpm
Старые ссылки ниже
Обновлено для JDK 8u161 RPM
~~```bash
wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.rpm
~~**Обновлено для JDK 8u152 RPM**~~
~~```bash
wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe78cdb6d0/jdk-8u152-linux-x64.rpm
```~~
~~**Обновлено для JDK 8u144 RPM**~~
~~```bash
wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.rpm
```~~
~~**Обновлено для JDK 8u131 RPM**~~
~~```bash
wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm
```~~
~~**Обновлено для JDK 8u121 RPM**~~
~~```bash
wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.rpm
```~~
Я знаю, что Oracle сделала всё возможное, чтобы сделать установку их Java Runtime и Java SDK как можно более сложной.
Вот несколько инструкций для любителей командной строки.
Для систем на базе Debian (тестировалось на Debian
squeeze и Ubuntu
12.x+):
su -
echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
apt-get update
apt-get install --yes oracle-java7-installer
exit
Примечание: если у вас есть лучший или более простой способ, добавьте комментарий, я обновлю инструкции.
Да, существует хорошая альтернатива для установки различных версий JDK через командную строку — это использование SDKMAN!. Этот инструмент позволяет легко управлять различными SDK, включая JDK от разных вендоров. Например, чтобы установить JDK Oracle версии 19.0.1, вы можете воспользоваться следующей командой:
sdk install java 19.0.1-oracle
SDKMAN! предлагает множество версий и вендоров, что делает его удобным инструментом для разработчиков, работающих с разными версиями Java.
Команда wget
, которую вы привели, используется для загрузки файла JDK 7u25 с сайта Oracle. Вот объяснение ключевых параметров:
--no-cookies
: игнорирует файлы cookie, которые могут быть отправлены сервером.--no-check-certificate
: отключает проверку сертификата SSL. Это может быть рискованно с точки зрения безопасности, так как вы не будете уверены в подлинности сервера.--header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com"
: вручную добавляет заголовок cookie в запрос, который может быть необходим для аутентификации или авторизации на сервере.
Если вас беспокоит безопасность, учитывайте, что отключение проверки сертификатов может сделать вашу систему уязвимой для атак "человек посередине". Поэтому, если это возможно, рекомендуется проверять сертификаты и использовать безопасные методы аутентификации. : )
Как установить Java 8 на Mac
Как инициализировать статическую Map?
Преобразование Set в List без создания нового списка
Список основных версий номеров формата файлов классов Java
Почему this() и super() должны быть первыми выражениями в конструкторе?