-
-
Save n0ts/40dd9bd45578556f93e7 to your computer and use it in GitHub Desktop.
#!/bin/bash | |
# You must accept the Oracle JDK License Update | |
# https://www.oracle.com/java/technologies/javase-downloads.html | |
# usage: get_oracle_jdk_x64.sh <jdk_version> <platform> <ext> | |
# jdk_version: 14 | |
# platform: linux or osx or windows | |
# ext: rpm or dmg or tar.gz or exec | |
jdk_version=${1:-14} | |
platform=${2:-linux} | |
ext=${3:-rpm} | |
readonly url="https://www.oracle.com" | |
readonly jdk_download_url1="$url/java/technologies/javase-downloads.html" | |
readonly jdk_download_url2=$( | |
curl -s $jdk_download_url1 | \ | |
egrep -o "/\java\/technologies\/javase-jdk${jdk_version}-downloads.html" | |
) | |
[[ -z "$jdk_download_url2" ]] && echo "Could not get jdk download url - $jdk_download_url1" >> /dev/stderr | |
readonly jdk_download_url3="${url}${jdk_download_url2}" | |
readonly jdk_download_url4=$( | |
curl -s $jdk_download_url3 | \ | |
egrep -o "download.oracle\.com\/otn-pub\/java\/jdk\/(${jdk_version})\..*\/.*\/jdk-${jdk_version}\..*[_]${platform}-x64_bin.${ext}\'" | tr -d \' | |
) | |
for dl_url in ${jdk_download_url4[@]}; do | |
wget --no-cookies \ | |
--no-check-certificate \ | |
--header "Cookie: oraclelicense=accept-securebackup-cookie" \ | |
-N $dl_url | |
done |
The script stopped working for me today. It appears the Oracle is now responding to these calls with a 301 response. Adding the -L flag to curl on lines 15 and 24 solved the issue for me.
Confirmed. Thanks @jonathan-russo
I am getting "302 Moved Temporarily" and then "401 Authorization Required".
So this script has broken again on me. I have now decided to simply download the tar.gz files and put them on a local server for consistent access. Thanks for the original script @n0ts
Seems to need https.
JDK_DOWNLOAD_URL4
need https and change otn-pub to otn:
readonly jdk_download_url4=$(
curl -s $jdk_download_url3 | \
egrep -o "https\:\/\/download.oracle\.com\/otn\/java\/jdk\/[8-9](u[0-9]+|\+).*\/jdk-${jdk_version}.*(-|_)linux-(x64|x64_bin).$ext"
)
And now NEED oracle account login/passwd.
i soon i run the script I get this error "Could not get jdk download url - https://www.oracle.com/technetwork/java/javase/downloads/index.html"
i soon i run the script I get this error "Could not get jdk download url - https://www.oracle.com/technetwork/java/javase/downloads/index.html"
Hi, I updated get_oracle_jdk_x64.sh .
For Linux
./get_oracle_jdk_x64.sh 14 linux rpm
For macOS
./get_oracle_jdk_x64.sh 14 osx dmg
For Windows
./get_oracle_jdk_x64.sh 14 windows exe
The script stopped working for me today. It appears the Oracle is now responding to these calls with a 301 response. Adding the -L flag to curl on lines 15 and 24 solved the issue for me.