73 lines
2.7 KiB
Bash
Executable File
73 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
echo "Begin: installation of Java"
|
|
set -e
|
|
|
|
distro=$(lsb_release -is || :)
|
|
|
|
: ${JAVA_TARGET_LOCATION:="/usr/java"}
|
|
|
|
# NOTE: $(dirname $0) is read-only, use space under $TARGET_ROOT
|
|
JAVA_HOME=$TARGET_ROOT$JAVA_TARGET_LOCATION
|
|
mkdir -p $JAVA_HOME
|
|
|
|
if [ -n "$JAVA_DOWNLOAD_URL" ]; then
|
|
install-packages wget
|
|
JAVA_FILE=$(basename $JAVA_DOWNLOAD_URL)
|
|
wget --no-check-certificate --no-cookies \
|
|
--header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" \
|
|
-O $JAVA_HOME/$JAVA_FILE $JAVA_DOWNLOAD_URL
|
|
if [ $? -eq 0 ]; then
|
|
echo "Java download successful"
|
|
else
|
|
echo "Error downloading $JAVA_DOWNLOAD_URL, exiting"
|
|
exit 1
|
|
fi
|
|
elif [ -n "$JAVA_FILE" ]; then
|
|
install -D -g root -o root -m 0755 $(dirname $0)/$JAVA_FILE $JAVA_HOME
|
|
fi
|
|
|
|
if [ -z "$JAVA_FILE" ]; then
|
|
install-packages default-jre
|
|
else
|
|
cd $JAVA_HOME
|
|
if [[ $JAVA_FILE == *.tar.gz ]]; then
|
|
echo "Decompressing Java archive"
|
|
echo -e "\n" | tar -zxf $JAVA_FILE
|
|
JAVA_NAME=`ls -1 $JAVA_TARGET_LOCATION | grep -v tar.gz`
|
|
echo "Setting up $JAVA_NAME"
|
|
chown -R root:root $JAVA_HOME
|
|
cat >> /etc/profile.d/java.sh <<EOF
|
|
# Custom Java install
|
|
export JAVA_HOME=$JAVA_TARGET_LOCATION/$JAVA_NAME
|
|
export PATH=\$PATH:$JAVA_TARGET_LOCATION/$JAVA_NAME/bin
|
|
EOF
|
|
case "$distro" in
|
|
Ubuntu )
|
|
echo "Setting up alternatives for Java"
|
|
update-alternatives --install "/usr/bin/java" "java" "$JAVA_TARGET_LOCATION/$JAVA_NAME/bin/java" 1
|
|
update-alternatives --install "/usr/bin/javac" "javac" "$JAVA_TARGET_LOCATION/$JAVA_NAME/bin/javac" 1
|
|
update-alternatives --install "/usr/bin/javaws" "javaws" "$JAVA_TARGET_LOCATION/$JAVA_NAME/bin/javaws" 1
|
|
|
|
update-alternatives --set java $JAVA_TARGET_LOCATION/$JAVA_NAME/bin/java
|
|
update-alternatives --set javac $JAVA_TARGET_LOCATION/$JAVA_NAME/bin/javac
|
|
update-alternatives --set javaws $JAVA_TARGET_LOCATION/$JAVA_NAME/bin/javaws
|
|
;;
|
|
Fedora | RedHatEnterpriseServer | CentOS )
|
|
alternatives --install /usr/bin/java java $JAVA_TARGET_LOCATION/$JAVA_NAME/bin/java 200000
|
|
alternatives --install /usr/bin/javaws javaws $JAVA_TARGET_LOCATION/$JAVA_NAME/bin/javaws 200000
|
|
alternatives --install /usr/bin/javac javac $JAVA_TARGET_LOCATION/$JAVA_NAME/bin/javac 200000
|
|
alternatives --install /usr/bin/jar jar $JAVA_TARGET_LOCATION/$JAVA_NAME/bin/jar 200000
|
|
;;
|
|
esac
|
|
elif [[ $JAVA_FILE == *.bin ]]; then
|
|
echo -e "\n" | sh $JAVA_FILE
|
|
else
|
|
echo "Unknown file type: $JAVA_FILE, exiting"
|
|
exit 1
|
|
fi
|
|
rm $JAVA_FILE
|
|
fi
|
|
|
|
echo "End: installation of Java"
|