1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
|
#!/usr/bin/env bash
DIR="$(cd -P "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
. ${DIR}/install-jenv.bash
jdk=$1
if [[ -z $jdk ]]; then
jdk=openjdk8
fi
uname=$2
if [[ -z $uname ]]; then
uname=$(uname)
fi
# empty variables are not necessary, but a hint that these are not
# lexically scoped in their modification.
topdir=
dist=
function determine_openjdk() {
case $uname in
# just x86_64 for now. We've got Rosseta2 c'est nes pas?
Darwin)
case $jdk in
openjdk8)
v=372
build=b07
version=1.8.0.${v}
topdir=jdk8u${v}-${build}
dist="https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u${v}-${build}/OpenJDK8U-jdk_x64_mac_hotspot_8u${v}${build}.tar.gz"
;;
openjdk11)
version=11.0.19
build=7
topdir=jdk-${version}+${build}
dist="https://github.com/adoptium/temurin11-binaries/releases/download/jdk-${version}%2B${build}/OpenJDK11U-jdk_x64_mac_hotspot_${version}_${build}.tar.gz"
;;
# deprecated
openjdk14) # Need version from adoptium
topdir=jdk-14.0.2+12
dist="https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_mac_hotspot_14.0.2_12.tar.gz"
;;
# deprecated
openjdk15) # Need version from adoptium
topdir=jdk-15+36
dist="https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15%2B36/OpenJDK15U-jdk_x64_mac_hotspot_15_36.tar.gz"
;;
# deprecated
openjdk16)
topdir=jdk-16.0.2+7
dist="https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_x64_mac_hotspot_16.0.2_7.tar.gz"
;;
openjdk17)
version=17.0.7
build=7
topdir="jdk-${version}+${build}"
dist="https://github.com/adoptium/temurin17-binaries/releases/download/jdk-${version}%2B${build}/OpenJDK17U-jdk_x64_mac_hotspot_${version}_${build}.tar.gz"
;;
# deprecated
openjdk19)
v="19"
id="${v}.0.2"
rev="7"
arch="jdk_x64_mac_hotspot"
topdir="jdk-${id}+${rev}"
dist="https://github.com/adoptium/temurin${v}-binaries/releases/download/jdk-${id}%2B${rev}/OpenJDK${v}U-${arch}_${id}_${rev}.tar.gz"
;;
openjdk20)
v="20"
id="${v}.0.1"
rev="9"
arch="jdk_x64_mac_hotspot"
topdir="jdk-${id}+${rev}"
dist="https://github.com/adoptium/temurin${v}-binaries/releases/download/jdk-${id}%2B${rev}/OpenJDK${v}U-${arch}_${id}_${rev}.tar.gz"
;;
esac
;;
Linux)
case $jdk in
openjdk8)
version=u372
build=b07
topdir=jdk8${version}-${build}
dist="https://github.com/adoptium/temurin8-binaries/releases/download/jdk8${version}-${build}/OpenJDK8U-jdk_x64_linux_hotspot_8${version}${build}.tar.gz"
;;
openjdk11)
version=11.0.19
build=7
topdir=jdk-${version}+${build}
dist="https://github.com/adoptium/temurin11-binaries/releases/download/jdk-${version}%2B${build}/OpenJDK11U-jdk_x64_linux_hotspot_${version}_${build}.tar.gz"
;;
# deprecated
openjdk14) # Need version from adoptium
topdir=jdk-14.0.2+12
dist="https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12/OpenJDK14U-jdk_x64_linux_hotspot_14.0.2_12.tar.gz"
;;
# deprecated
openjdk15) # Need version from adoptium
topdir=jdk-15+36
dist="https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15%2B36/OpenJDK15U-jdk_x64_linux_hotspot_15_36.tar.gz"
;;
# deprecated
openjdk16)
topdir=jdk-16.0.2+7
dist="https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz"
;;
openjdk17)
version=17.0.7
build=7
topdir="jdk-${version}+${build}"
dist="https://github.com/adoptium/temurin17-binaries/releases/download/jdk-${version}%2B${build}/OpenJDK17U-jdk_x64_linux_hotspot_${version}_${build}.tar.gz"
;;
# deprecated
openjdk19)
v="19"
id="${v}.0.2"
rev="7"
arch="jdk_x64_linux_hotspot"
topdir="jdk-${id}+${rev}"
dist="https://github.com/adoptium/temurin${v}-binaries/releases/download/jdk-${id}%2B${rev}/OpenJDK${v}U-${arch}_${id}_${rev}.tar.gz"
;;
openjdk20)
v="20"
id="${v}.0.1"
rev="9"
arch="jdk_x64_linux_hotspot"
topdir="jdk-${id}+${rev}"
dist="https://github.com/adoptium/temurin${v}-binaries/releases/download/jdk-${id}%2B${rev}/OpenJDK${v}U-${arch}_${id}_${rev}.tar.gz"
;;
esac
;;
*)
echo No known dist for $(uname)
esac
}
tmpdir=/var/tmp
function download_and_extract() {
pushd ${tmpdir} && wget --continue ${dist}
tar xvz -f $(basename ${dist})
popd
}
function add_jdk() {
echo $dist
echo $tmpdir
case $(uname) in
Darwin)
jenv add ${tmpdir}/${topdir}/Contents/Home
;;
Linux)
jenv add ${tmpdir}/${topdir}
;;
esac
}
determine_openjdk
download_and_extract
add_jdk
. ${DIR}/set-jdk.bash ${jdk}
jenv doctor
|