При загрузке Java JDK в Linux через wget вместо этого отображается страница лицензии

615

Когда я пытаюсь загрузить Java из Oracle, я вместо этого скачиваю страницу, сообщающую, что мне нужно согласиться с условиями лицензии OTN.

Сожалею!

Для загрузки продуктов из Oracle Technology Network вы должны согласиться с условиями лицензии OTN.

Будьте уверены, что ...

  • В вашем браузере включены "куки" и JavaScript.
  • Вы нажали «Принять лицензию» для продукта, который хотите загрузить.
  • Вы пытаетесь загрузить файл в течение 30 минут после принятия лицензии.

Как я могу скачать и установить Java?

thejartender
источник
Этот вопрос является тематическим, так как он относится к тому, как разработчики устанавливают наборы для разработки. Повторное открытие по этой причине.
Джордж Стокер

Ответы:

1659

ОБНОВЛЕНО ДЛЯ Oracle JDK 11

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/11+28/55eed80b163941c8885ad9298e6d786a/jdk-11_linux-x64_bin.tar.gz

ОБНОВЛЕНО ДЛЯ JDK 10.0.2

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.tar.gz

ОБНОВЛЕНО ДЛЯ JDK 10.0.1

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/10.0.1+10/fb4372174a714e6b8c52526dc134031e/jdk-10.0.1_linux-x64_bin.tar.gz

ОБНОВЛЕНО ДЛЯ JDK 9 похоже, что вы можете скачать его прямо сейчас с java.net без отправки заголовка

wget http://download.java.net/java/GA/jdk9/9/binaries/jdk-9+181_linux-x64_bin.tar.gz

ОБНОВЛЕНО ДЛЯ JDK 8u191

TAR GZ:

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3a%2F%2Fwww.oracle.com%2Ftechnetwork%2Fjava%2Fjavase%2Fdownloads%2Fjdk8-downloads-2133151.html; oraclelicense=accept-securebackup-cookie;" "https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.tar.gz"

RPM:

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3a%2F%2Fwww.oracle.com%2Ftechnetwork%2Fjava%2Fjavase%2Fdownloads%2Fjdk8-downloads-2133151.html; oraclelicense=accept-securebackup-cookie;" "https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.rpm"

ОБНОВЛЕНО ДЛЯ JDK 8u131

RPM:

  wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm

TAR GZ:

 wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz

RPM с использованием curl:

 curl -v -j -k -L -H "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm > jdk-8u112-linux-x64.rpm

Во всех вышеперечисленных случаях подставьте «i586» вместо «x64», чтобы загрузить 32-разрядную сборку.

  • -j -> нежелательное печенье
  • -k -> игнорировать сертификаты
  • -L -> следовать перенаправлениям
  • -H [arg] -> заголовки

curlможет быть использован вместо wget.

ОБНОВЛЕНИЕ ДЛЯ JDK 7u79

TAR GZ:

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz

RPM с использованием curl:

curl -v -j -k -L -H "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.rpm > jdk-7u79-linux-x64.rpm

Еще раз убедитесь, что вы указали правильный URL для версии, которую вы загружаете. Вы можете найти URL здесь: сайт загрузки Oracle JDK

ОРИГИНАЛЬНЫЙ ОТВЕТ ОТ 9 июня 2012

Если вы хотите загрузить Oracle JDK из командной строки, используйте wgetобходной путь. Запустите wgetкоманду следующим образом:

wget --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" "http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-x64.tar.gz"

Обязательно замените ссылку для загрузки верной ссылкой для версии, которую вы загружаете.

Эрик Камара
источник
6
(Возможно, этот миллионный репост, наконец, добьется цели.) Простой --header "Cookie: oraclelicense=accept-securebackup-cookie"(или --header "Cookie: oraclelicense=[any-character(s)-but-a-single-space]"), кажется, работает нормально. Не могли бы вы подтвердить это?
Det
2
Обновление для свежего Java 8: wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8-b132/jdk-8-linux-x64.tar.gz. В --no-печенье избыточна и --no-чек-сертификат необходим только с Wget 1.12 и старше, которые не хватает поддержки SAN ( в основном RHEL / CentOS 6.x). Curl версия:curl -L -C - -b "oraclelicense=accept-securebackup-cookie" -O http://download.oracle.com/otn-pub/java/jdk/8-b132/jdk-8-linux-x64.tar.gz
Det
3
Я попробовал новый 121 Версон с URL-адресом download.oracle.com/otn-pub/java/jdk/8u121-b13/… но, похоже, он не работает. есть мысли?
Нам Нгуен
3
получил ОШИБКУ 404: Не найдено с JDK 11, может быть неверный URL?
Тянь Дунг Чан
2
ОБНОВЛЕНО ДЛЯ Oracle Решение JDK 11 больше не работает
бомба
247

( Иранский обновил мой ответ, но здесь, чтобы уточнить все это. )

Редактировать: Обновлено для Java 11.0.1 , выпущено 16 октября 2018

Wget

wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/11.0.1+13/90cf5d8f270a4347a95050320eef3fb7/jdk-11.0.1_linux-x64_bin.tar.gz

JRE 8u191 (без флагов cookie): http://javadl.oracle.com/webapps/download/AutoDL?BundleId=235717_2787e4a523244c269598db4e85c51e0c.
Дополнительные сведения см. В загрузках на oracle.com и java.com .

  • -c / --continue

    Позволяет продолжить незаконченную загрузку.

  • --header "Cookie: oraclelicense=accept-securebackup-cookie"

    С 15 марта 2014 года этот файл cookie предоставляется пользователю после принятия лицензионного соглашения и необходим для доступа к пакетам Java на сайте download.oracle.com . Предыдущая (и первая) реализация 27 марта 2012 года использовала cookie gpw_e24=http%3A%2F%2Fwww.oracle.com[...]. Оба случая остаются необъявленными для общественности.

    Значение не должно быть " accept-securebackup-cookie".

Требуется для Wget <1.13

  • --no-check-certificate

    Требуется только с wget 1.12 и более ранними версиями , которые не поддерживают сертификаты Subject Alternative Name (SAN) (в основном Red Hat Enterprise Linux 6.x и его друзей, таких как CentOS). 1.13 был выпущен в августе 2011 года.

    Чтобы увидеть текущую версию, используйте: wget --version | head -1

Не требуется

  • --no-cookies

    Комбинация --no-cookies --header "Cookie: name=value"упоминается как « официальная » поддержка файлов cookie, но здесь она не обязательна.

завивать

curl -L -C - -b "oraclelicense=accept-securebackup-cookie" -O http://download.oracle.com/otn-pub/java/jdk/11.0.1+13/90cf5d8f270a4347a95050320eef3fb7/jdk-11.0.1_linux-x64_bin.tar.gz
  • -L / --location

    Требуется, чтобы cURL перенаправлял через все зеркала.

  • -C / --continue-at -

    Смотри выше. cURL требует черту ( -) в конце.

  • -b / --cookie "oraclelicense=accept-securebackup-cookie"

    То же самое -H / --header "Cookie: ...", но принимает и файлы.

  • -O

    Требуется для сохранения файлов cURL (см . Сравнение автора для получения дополнительных отличий).

Det
источник
2
«предыдущая черта» должна быть «чертой после любой формы опции», но это превосходное обобщение.
Алекс Дюпюи
1
Что ж, я изменил его на « cURL требует черты ( -) в конце». Это должно быть достаточно ясно, если принять во внимание, как другая форма flagуже показана в команде.
Det
1
Я попробовал новую версию 121 с URL-адресом download.oracle.com/otn-pub/java/jdk/8u121-b13/… но, похоже, он не работает. есть мысли?
Нам Нгуен
1
Кажется, не работает для старой версии. Я не могу скачать 8u121. Наверное, из-за Downloading these releases requires an oracle.com account. Любое решение?
ALex_hha
1
Мы используем Docker, поэтому нам нужно использовать конкретную версию Java. Да, я могу найти файл на некоторых ftp, но я только что упомянул, что отныне вы не можете скачать предыдущую версию с сайта без их учетной записи
ALex_hha
35

Загрузка Java из командной строки всегда была хлопотной. В последнее время я использовал FireFox (другие браузеры могут работать), чтобы начать загрузку на моем ноутбуке, приостановить его (в окнах загрузок), использовать пункт меню «Копировать ссылку для загрузки» контекстного меню, отображаемого для загрузка файла Этот URL-адрес может быть использован в окне Linux для загрузки того же файла. Я ожидаю, что URL будет недолгим. Уродливо, но в целом успешно.

Андрей Гилмартин
источник
Да .. это работает. Ницца. У меня был свой URL, например, download.oracle.com/otn-pub/java/jdk/7u9-b05/…
Мукус,
3
Это интересный вопрос, но он не отвечает на вопрос. Нажатие на FireFox несовместимо с «автоматической загрузкой».
Стефан Гурихон
Не так хлопотно (перевод невозможен), как в моих браузерах (множественное число) сегодня. Приблизительно через 10–20% сервер Oracle отключится, и у меня будет усеченная загрузка. Инструмент CLI, по крайней мере, повторяет попытки с того места, где он остановился, и в конечном итоге один из прогонов завершится без тайм-аута / отклонения.
Робопрог
отлично! параметр запроса AuthParamимеет какое-то отношение к проверке Oracle, согласился ли пользователь на лицензию или нет.
просит
Единственное решение, работающее на меня сегодня. Все вышеперечисленные приемы wget с параметром accept cookie не сработали.
Саад Бенбузид
23

Обновлено для JDK 8u171 об / мин

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 об / мин

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 об / мин

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 об / мин

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 об / мин

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

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

jdrews
источник
2
Этот абсолют помог мне. Чтобы использовать tar.gz, мне просто нужно было переименовать .rpm в .tar.gz
Йорако Гонсалес
19

Я знаю, что Oracle сделал все возможное, чтобы сделать их Java Runtime и Java SDK максимально сложными.

Вот несколько руководств для любителей командной строки.

Для систем, подобных Debian (протестировано на Debiansqueeze и Ubuntu12.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

Примечание: если вы знаете, как лучше или проще добавить комментарий, я обновлю руководство.

Сорин
источник
2
По состоянию на 2013-11-02 другие методы нелегко настроить с помощью различных версий. Этот метод работает, какой бы ни была текущая версия, и может быть автоматизирован / скриптован / запущен без присмотра с параметрами apt-get, такими как --yes.
Стефан Гурихон
Пробовал этот метод с oracle-java8-installer с --yes, --assume-yes, --force-yesопциями, но при каждой установке мне нужно принять лицензионное соглашение с enter-key.
Дрей
9

Java SE Development Kit 12.0.2

TAR.GZ

wget  --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/12.0.2+10/e482c34c86bd4bf8b56c0b35558996b9/jdk-12.0.2_linux-x64_bin.tar.gz
Хуан Пабло Г
источник
почему --no-check-certificate? без этого переключателя он работает нормально, поэтому с точки зрения безопасности его не следует использовать, особенно когда он устарел.
tymik
6

Oracle добавила файл cookie для предотвращения загрузки в ссылку для загрузки, чтобы заставить вас принять условия, даже если в лицензионном соглашении на использование Java четко указано, что, просто используя Java, вы «соглашаетесь» с лицензией.

Oracle хочет, чтобы вы загрузили его по соглашению. После этого этот скрипт может быть изменен для вашего конкретного Linux

#!/bin/bash
#Author: Yucca Nel http://thejarbar.org
#Will restart system
#Modify these variables as needed...
tempWork=/tmp/work
locBin=/usr/local/bin
javaUsrLib=/usr/lib/jvm

sudo mkdir -p $javaUsrLib
mkdir -p $tempWork
cd $tempWork

#Extract the download
tar -zxvf $downloadDir/jdk*tar.gz

#Move it to where it can be found...

sudo mv -f $tempWork/jdk* $javaUsrLib/

sudo ln -f -s $javaUsrLib/jdk1/bin/* /usr/bin/

#Update this line to reflect versions of JDK...
export JAVA_HOME="$javaUsrLib/jdk1.7.0_03"
#Extract the download
tar -zxvf $tempWork/*

#Move it to where it can be found...

sudo mv -f $tempWork/jdk1* $javaUsrLib/

sudo ln -f -s $javaUsrLib/jdk1*/bin/* /usr/bin/
sudo rm -rf $tempWork
#Update this line to reflect newer versions of JDK...
export JAVA_HOME="$javaUsrLib/jdk1.7.0_03"

if ! grep "JAVA_HOME=$javaUsrLib/jdk1.7.0_03" /etc/environment
then
    echo "JAVA_HOME=$javaUsrLib/jdk1.7.0_03"| sudo tee -a /etc/environment
fi


exit 0
thejartender
источник
1
Этот ответ предполагает, что вы используете Linux, и что вы хотите установить его нестандартным способом / местом, и кучу других вещей. Лучшим ответом будет «просто следуйте инструкциям по установке на веб-сайте загрузки» ... если только вы не используете Ubuntu, в этом случае есть другие способы сделать это.
Стивен С.
8
И как странно, что ответ предполагает Linux, когда заголовок вопроса включает Linux? Сценарий не является универсальным, учитывая, что сам Linux не таков. Учитывая, что это мой собственный ответ на мой собственный вопрос, я проверил его, и это сработало для меня.
thejartender
6

Для тех, кто нуждается в JCE8, вы также можете скачать это.

curl -L -C - -b "oraclelicense=accept-securebackup-cookie" -O http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip

Или

wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip
Коул Стэнфилд
источник
5

Это работает для JDK 6, вам просто нужно заменить URL-адрес загрузки на последнюю версию.

wget --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2Ftechnetwork%2Fjava%2Fjavase%2Fdownloads%2Fjdk6-downloads-1637591.html;" http://download.oracle.com/otn-pub/java/jdk/6u33-b03/jdk-6u33-linux-x64.bin
Hiro2k
источник
Это работает, но я не мог выбрать 6u48, потому что часть, где у вас есть 6u33-b03.
Джейкоб Филлипс
На 2013-11-02, не может быть, чтобы это работало. Загружает страницу регистрации в формате HTML вместо файла.
Стефан Гурихон
5

эта команда может загрузить пакет jdk8 tgz прямо сейчас (2018-09-06), удачи!

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"
Кай
источник
Я пробовал другие команды, но ничего не получалось, но этот работал без сбоев (запуск 20 сентября 2019 года).
Другой кодер
4

Вместо того, чтобы использовать для каждой новой версии Java новую ссылку или изменять существующие сценарии, я искал более общий способ автоматизации загрузки необходимых пакетов Java и последующей установки через yum localinstall ${JAVA_ENVIRONMENT}-${JAVA_VERSION}-linux-x64.rpm .

Я использовал какой-то тривиальный подход, подобный ручному / пользовательскому действию, чтобы найти пакет и загрузить его. Я также почти уверен, что можно найти более элегантный способ сделать это, используя другие инструменты, такие как egrep, awkи т. Д., Поэтому оставьте это в качестве примера здесь:

#!/bin/bash

### Proxy settings
# If there is a company proxy 

PROXY="my.proxy.local:8080"
PROXY_TYPE="--proxy-ntlm" # or leave empty with ""
USER="user"
PASS='pass'

### Find out the links to JRE and JDK 
# To do so, got to the page http://www.oracle.com/technetwork/java/javase/downloads/

BASE_URL="technetwork/java/javase/downloads"

# Put the whole page into a single string/line

BASE_URL_OUTPUT="$(curl -s -k ${PROXY_TYPE} -x "http://${USER}:${PASS}@${PROXY}" -L0 http://www.oracle.com/${BASE_URL}/)"

# Define the environments to download 

JAVA_ENVIRONMENTS=("JRE" "JDK") # ! yet "SERVER-JRE"

for JAVA_ENVIRONMENT in "${JAVA_ENVIRONMENTS[@]}"
do

echo
echo "JAVA_ENVIRONMENT="$JAVA_ENVIRONMENT
echo

for (( JAVA_BASE_VERSION = 8; JAVA_BASE_VERSION <= 10; JAVA_BASE_VERSION += 2 ))  
do

echo "JAVA_BASE_VERSION="$JAVA_BASE_VERSION

### "Read the page"
# and follow the links for the package interested in 

DOWNLOAD_SITE="$(echo $BASE_URL_OUTPUT | grep -m 1 -io "${JAVA_ENVIRONMENT}${JAVA_BASE_VERSION}-downloads-[0-9]*.html" -- | tail -1)"
echo "DOWNLOAD_SITE="$DOWNLOAD_SITE

### Gather the necessary download links
# To do so, following the link to the download site
# reading and accept the license 
# 
# ... the greedy regular expression is to address the different syntax of the links
# and already prepared for OR .gz files 

DOWNLOAD_LINK_OUTPUT="$(curl -s -k ${PROXY_TYPE} -x "http://${USER}:${PASS}@${PROXY}" -L -j -H "Cookie: oraclelicense=accept-securebackup-cookie" http://www.oracle.com/${BASE_URL}/${DOWNLOAD_SITE} |  grep -io "filepath.*${JAVA_ENVIRONMENT}-[${JAVA_BASE_VERSION}].*linux[-_]x64[._].*\(rpm\)" -- | cut -d '"' -f 3 | tail -1)"

# and echo out the link

echo "DOWNLOAD_LINK_OUTPUT="$DOWNLOAD_LINK_OUTPUT

done

done

Поскольку ссылки для скачивания доступны сейчас, можно продолжить с wgetили curl.

U880D
источник
3

Все вышеперечисленное предполагает, что вы знаете URL-адрес последней версии Java RPM ...

Oracle предоставляет постоянные ссылки на последние обновления каждой версии Java, как описано в https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=397248601136938&id=1414485.1 - хотя вам необходимо создать / войти в учетную запись службы поддержки Oracle , * В противном случае вы можете получить доступ только к последнему «общедоступному» обновлению каждой версии Java, например, 1.6_u45 (март 2013 г .; последнее обновление - u65, октябрь 2013 г.) *

Как только вы узнаете постоянную ссылку, вы сможете преобразовать ее в реальную загрузку; Следующее работает для меня, хотя я еще не знаю, изменится ли ссылка "aru".

ME=<myOracleID>
PW=<myOraclePW>
PATCH_FILE=p13079846_17000_Linux-x86-64.zip

echo "Get real URL from the persistent link"

wget -o getrealurl.out --no-cookies --no-check-certificate --user=$ME \
--password=$PW --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" \
https://updates.oracle.com/Orion/Services/download/$PATCH_FILE?aru=16884382&\
patch_file=$PATCH_FILE

wait    # wget appears to go into background, so "wait" waits 
        # until all background processes complete

REALURL=`grep "^--" getrealurl.out |tail -1 |sed -e 's/.*http/http/'`
wget -O $PATCH_FILE $REALURL
#These last steps must be done quickly, as the REALURL seems to have a short-lived 
#cookie on it and I've had no success with  --keep-session-cookies etc.
tfewster
источник
1
Я настоятельно рекомендую не использовать --no-check-Certificate при передаче пароля.
Рик Мориц
3

Как уже было размещено здесь: https://stackoverflow.com/a/41718895/4370196

Обновление для JDK 8 Обновление 121

Поскольку Oracle вставил в свои ссылки на скачивание некоторый md5hash, невозможно автоматически собрать ссылку для загрузки для командной строки.

Поэтому я возился с какой-то неприятной командной строкой bash, чтобы получить последнюю ссылку на скачивание jdk, скачать ее и установить напрямую через rpm. Для всех, кому интересно:

wget -q http://www.oracle.com/technetwork/java/javase/downloads/index.html -O ./index.html && grep -Eoi '] +>' index.html | grep -Eoi '/technetwork/java/javase/downloads/jdk8-downloads-[0-9]+.html' | (голова -n 1) | awk '{print " http://www.oracle.com " $ 1}' | xargs wget --no-cookies --header "Cookie: gpw_e24 = xxx; oraclelicense = accept-securebackup-cookie;" -O index.html -q && grep -Eoi '"filepath": "[^"] + jdk-8u [0-9] + - linux-x64.rpm "' index.html | grep -Eoi 'http: [ ^ "] + '| xargs wget --no-cookies --header "Cookie: gpw_e24 = xxx; oraclelicense = accept-securebackup-cookie;" -q -O ./jdk8.rpm && sudo rpm -i ./jdk8.rpm

Смелая часть должна быть заменена пакетом по своему вкусу.

Бен Херфурт
источник
Да, уже не так просто собрать ссылку. Я использовал аналогичный подход в скрипте bash, чтобы получить последние ссылки для загрузки JRE и JDK для версий 8 и 9. Его можно найти в этой теме в качестве ответа .
U880D
2

Я решаю эту проблему (для дистрибутивов Linux на основе Debian), создавая пакеты, используя java-package несколько раз (для различных архитектур), а затем распределяя их внутри.

Большой плюс в том, что этот метод всегда работает; независимо от того, насколько сумасшедшими становятся веб-страницы Oracle. Oracle больше не может сломать мою сборку!

Недостатком является то, что изначально нужно немного больше настроить.

  • Загрузите файлы tar.gz вручную в браузер (таким образом, «принимая» их условия)
  • Беги make-jpkg jdk-7u51-linux-x64.tar.gz. Это создаетoracle-java8-jdk_8_amd64.deb
  • Распределите это в своей организации

Для распространения через Интернет я предлагаю использовать защищенный паролем репозиторий apt или предоставить необработанные пакеты с использованием симметричного шифрования:

passphrase="Hard to crack string. Use /dev/urandom for inspiration."
gpg --batch --symmetric --force-mdc --passphrase-fd 0 \
   oracle-java8-jdk_8_amd64.deb <<< "$passphrase"

Конечно, предоставление (незашифрованных) пакетов .deb в Интернете, вероятно, является нарушением вашего лицензионного соглашения с Oracle, в котором говорится:

... Oracle предоставляет вам ... лицензию ... на воспроизведение и внутреннее использование Программного обеспечения, полного и неизмененного для единственной цели запуска Программ "

На принимающей стороне, если у вас есть apt-репозиторий, защищенный паролем, все, что вам нужно сделать, это apt-get installего. Если у вас есть необработанные пакеты, скачайте, расшифруйте и dpkg -iих. Работает как шарм!

mogsie
источник
2
так вот как это было реализовано в честь лицензии. Это потрясающе :-)
Kowser
2

Wget Это сработало для меня JDK8

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2F%www.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm"
vvardhanz
источник
2

Принятый ответ не работал для меня, по состоянию на 2017-04-25. Однако, простым решением было использование -bфлага вместо --headerопции.

Например, чтобы получить jdk-1.8_131:

version='8u131'; wget -H -O jdk-$version-linux-x64.tar.gz --no-check-certificate --no-cookies -b "oraclelicense=a" http://download.oracle.com/otn-pub/java/jdk/$version-b11/jdk-$version-linux-x64.tar.gz

Это будет выполняться в фоновом режиме, записывая вывод в wget-log.

ILMostro_7
источник
1

Пытаться

wget --no-cookies --header "Cookie: s_nr=1359635827494; s_cc=true; gpw_e24=http%3A%2F%2Fwww.oracle.com%2Ftechnetwork%2Fjava%2Fjavase%2Fdownloads%2Fjdk6downloads-1902814.html; s_sq=%5B%5BB%5D%5D; gpv_p24=no%20value" http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-x64-rpm.bin --no-check-certificate -O ./jdk-6u45-linux-x64-rpm.bin

если вы, как я, пытаетесь получить Oracle JDK 6.

Источник: Oracle JVM скачать с помощью curl / wget

ssgao
источник
1

Я сделал скрипт jdk-download (специфичный для tar.gz) для моих коробок gentoo. Не нужно обновлять, как другие подобные скрипты, пытаясь "грубой силой" загрузить последнюю сборку для любой версии, которую вы хотите.

ПРИМЕНЕНИЕ

jdk-download< <version> <platform> [<build>]

* <version> - Something like "8u40"
* <platform> - Usually i586 or x64
* <build> - The internal build number used by oracle, to avoid guessing and trying to download starting from 99 to 1 (build 0, really?!!)

Сообщение блога

Источник на битбакете

Фабио Бонфанте
источник
1

оракул Java-скачать - это проект на GitHub, который позволяет создавать ссылки для загрузки JDK 8 и JDK 9, которые можно использовать для дальнейшей обработки, например, в процессах автоматической сборки или развертывания.

Требуется Linux, Docker и JDK> = 8 для запуска.

Aventurin
источник
1

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24 = http% 3A% 2F% 2Fwww.oracle.com% 2F; oraclelicense = accept-securebackup-cookie" " http: // download. oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.rpm?AuthParam=1516282527_40effcfefd78d78bce12c0a4030a1b05 "

Роман В
источник
HTTP-запрос отправлен в ожидании ответа ... 403 Запрещено 2018-01-24 03:24:51 ОШИБКА 403: Запрещено.
Иезекииль Баниага
1

контекст

Недавно я столкнулся с той же проблемой, и хотя комментарии на этой странице и некоторые другие содержали полезные советы - я подумал, что было бы хорошо документировать шаги, которые я предпринял, чтобы решить эту проблему, для людей, которые могут нуждаться в дальнейшей помощи.

Сведения о системе

Я следую PNDA, настроенной на AWS, следуя пошаговому руководству по установке pnda по адресу:

https://github.com/pndaproject/pnda-guide/blob/develop/provisioning/aws/PREPARE.md

Я использую ubuntu 14.04 [бесплатный уровень, соответствующий требованиям] в облаке AWS, и использую код с 64-битного ноутбука Windows8.1. Я использую PUTTY для подключения к экземпляру сервера. Я git клонировал код pnda из https://github.com/pndaproject/pnda в экземпляр ubuntu.

Важное примечание Обратите внимание: если вы планируете использовать экземпляр Ubuntu в AWS, убедитесь, что это только 14.04. Если вы используете версию 16, она не работает. Я научился этому нелегко!

Шаги разрешения

Те, кто зашел так далеко, что столкнулись с обсуждаемой здесь ошибкой, знают: файл создания зеркала включает следующие шаги:

1) Запустите скрипт create_mirror.sh [ sudo su -s ./create_mirror.sh ]для запуска полного процесса создания зеркала

2) Этот сценарий, в свою очередь, вызывает различные другие сценарии, один из которых - create_mirror_misc.sh ; этот скрипт относится к pnda-static-file-dependencies.txtсписку файлов для загрузки.

3) В самой первой строке файла pnda-static-file-dependencies.txt находится ссылка для загрузки файла jdk-8u131-linux-x64.tar.gz http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz oraclelicense=accept-securebackup-cookie; Именно в этот момент мой скрипт завершился с сообщениемFailed to download http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz after 3 retries

4) Я зашел на страницу http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gzи обнаружил следующее сообщение об ошибке**In order to download products from Oracle Technology Network you must agree to the OTN license terms**

5) Чтобы решить эту проблему, я внес следующие изменения в pnda-static-file-dependencies.txt ; Я добавил --no-check-certificate --no-cookies, чтобы обойти условия лицензионного соглашения

6) Итак, пересмотренный код выглядит так: http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz --no-check-certificate --no-cookies oraclelicense=accept-securebackup-cookie

Я надеюсь, что это полезно.

Stats_Lover
источник
1

тебе стоит попробовать:

wget \
        --no-cookies \
        --header "Cookie: oraclelicense=accept-securebackup-cookie" \
        http://download.oracle.com/otn-pub/java/jdk/8u172-b11/a58eab1ec242421181065cdc37240b08/jdk-8u172-linux-x64.tar.gz \
        -O java.tar.gz
Walterwhites
источник
1

скачать JDK 8U221

$ wget -c --content-disposition "https://javadl.oracle.com/webapps/download/AutoDL?BundleId=239835_230deb18db3e4014bb8e3e8324f81b43"
$ old=$(ls -hat | grep jre | head -n1)
$ mv $old $(echo $old | awk -F"?" '{print $1}')

мой блог 044-wget 下载 jdk8u221

Anjia
источник
0

Это происходит потому, что когда вы нажимаете кнопку «Принять» на странице загрузки в вашем браузере, веб-страница сохраняет файл cookie, который используется для проверки вашего соглашения, прежде чем вы сможете загрузить файл. Проблема возникает при попытке загрузки из командной строки с помощью wget, и это связано с тем, что информация о файлах cookie не отправляется вместе с запросом wget о загрузке файла, поэтому с точки зрения файлового сервера вы совершенно новый пользователь, который не принял лицензию соглашение.

Одним из решений является отправка файлов cookie с помощью опции --header утилиты wget (как показано выше в других ответах). В идеале, если некоторый контент защищен, вы должны использовать различные опции управления сеансами, доступные в wget. Для этой конкретной проблемы, однако, она решается (в настоящее время) путем отправки Cookieзаголовка с запросом на загрузку.

krishnakeshan
источник
Когда вы нажимаете «Принять» и захватываете URL-адрес с этой страницы, он направляет вас http://download.oracle.com/otn/java/...вместо того, чтобы http://download.oracle.com/otn-pub/java/...просто перейти /otn/на/otn-pub/
T.CK
0

Вот как можно получить команду самостоятельно. Это работает для любой версии:

  1. Доступ к странице пакетов здесь: https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
  2. Нажмите на ссылку для загрузки желаемого пакета
  3. Установите флажок, указывающий, что вы "просмотрели и принимаете ..."
  4. Щелкните правой кнопкой мыши и скопируйте адрес ссылки с кнопки
  5. Вставьте в текстовый редактор, а затем скопируйте все ПОСЛЕ «nexturl =», начиная с «https: //»
  6. Обновите URL-адрес для загрузки в этой команде, и вы должны начать:

    wget --no-check-certificate -c --header "Cookie: oraclelicense = accept-securebackup-cookie" https://download.oracle.com/otn/java/jdk/11.0.6+8/90eb79fb590d45c8971362673c5ab495/jdk- 11.0.6_linux-x64_bin.tar.gz

Для более подробного объяснения wget, --no-check-Certificate должен быть достаточно понятным, но содержимое заголовка (для любого вызова) может быть обнаружено с помощью вкладки Network Developer Network в вашем браузере. Инструменты разработчика являются мощными и хорошо стоят времени на изучение. Наслаждаться.

Алекс Аткинсон
источник
0

Ответ @eric сделал свое дело для меня, вы должны принять условия в команде, которую вы устанавливаете, т.е.

"Cookie: oraclelicense=accept-securebackup-cookie"

так что ваша последняя команда выглядит так

wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz

Вы можете решить обновить версию, изменив 8u131на 8uXXX. пока это доступно в репо.

Мертвый парень
источник
-3
sudo wget --no-check-certificate --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" "http://download.oracle.com/otn-pub/java/jdk/7u45-b18/jdk-7u45-linux-x64.rpm"
nmeegama
источник
-4

Почему бы не нажать для загрузки из браузера, а затем скопировать и вставить точную ссылку, где он был загружен, например:

wget http://download.oracle.com/otn-pub/java/jdk/7u40-b43/jdk-7u40-linux-x64.tar.gz?AuthParam=1380225131_dd70d2038c57a4729d8c0226684xxxx

Вы можете найти ссылку, посмотрев на вкладку сети вашего браузера после принятия условий в oracle и щелкнув для загрузки. F12 в хром. Firebug в Firefox.

jacktrades
источник
1
Потому что людям это нужно для автоматической установки Java на серверы с помощью скриптов bash.
Саша Шияк