Code for blog post, 'Updating Ubuntu with the Latest Java JDK': http://wp.me/p1RD28-Wq
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
################################################################# | |
# author: Gary A. Stafford | |
# date: 2013-12-17 | |
# source: www.programmaticponderings.com | |
# description: complete code for install and config on Ubuntu | |
# of jdk 1.7.0_45 in alteratives automatic mode | |
################################################################# | |
########## variables start ########## | |
# priority value | |
priority=20000 | |
# path to binaries directory | |
binaries=/usr/bin | |
# path to libraries directory | |
libraries=/usr/lib | |
# path to new java version | |
javapath=$libraries/jvm/jdk1.7.0_45 | |
# path to downloaded java version | |
java_download=~/jdk-7u45-linux-x64.tar.gz | |
########## variables end ########## | |
cd $libraries | |
[ -d jvm ] || sudo mkdir jvm | |
cd ~/ | |
# change permissions on jvm subdirectory | |
sudo chmod +x $libraries/jvm/ | |
# extract new version of java from the downloaded tarball | |
if [ -f $java_download ]; then | |
sudo tar -zxf $java_download -C $libraries/jvm | |
else | |
echo "Cannot locate Java download. Check 'java_download' variable." | |
echo 'Exiting script.' | |
exit 1 | |
fi | |
# install and config java web start (java) | |
sudo update-alternatives --install $binaries/java java \ | |
$javapath/jre/bin/java $priority | |
sudo update-alternatives --auto java | |
# install and config java web start (javaws) | |
sudo update-alternatives --install $binaries/javaws javaws \ | |
$javapath/jre/bin/javaws $priority | |
sudo update-alternatives --auto javaws | |
# install and config java compiler (javac) | |
sudo update-alternatives --install $binaries/javac javac \ | |
$javapath/bin/javac $priority | |
sudo update-alternatives --auto javac | |
# install and config java archive tool (jar) | |
sudo update-alternatives --install $binaries/jar jar \ | |
$javapath/bin/jar $priority | |
sudo update-alternatives --auto jar | |
# jar signing and verification tool (jarsigner) | |
sudo update-alternatives --install $binaries/jarsigner jarsigner \ | |
$javapath/bin/jarsigner $priority | |
sudo update-alternatives --auto jarsigner | |
# install and config java tool for generating api documentation in html (javadoc) | |
sudo update-alternatives --install $binaries/javadoc javadoc \ | |
$javapath/bin/javadoc $priority | |
sudo update-alternatives --auto javadoc | |
# install and config java disassembler (javap) | |
sudo update-alternatives --install $binaries/javap javap \ | |
$javapath/bin/javap $priority | |
sudo update-alternatives --auto javap | |
# install and config file that creates c header files and c stub (javah) | |
sudo update-alternatives --install $binaries/javah javah \ | |
$javapath/bin/javah $priority | |
sudo update-alternatives --auto javah | |
# jexec utility executes command inside the jail (jexec) | |
sudo update-alternatives --install $binaries/jexec jexec \ | |
$javapath/lib/jexec $priority | |
sudo update-alternatives --auto jexec | |
# install and config file to run applets without a web browser (appletviewer) | |
sudo update-alternatives --install $binaries/appletviewer appletviewer \ | |
$javapath/bin/appletviewer $priority | |
sudo update-alternatives --auto appletviewer | |
# install and config java plugin for linux (mozilla-javaplugin.so) | |
if [ -f '$libraries/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so' ]; then | |
sudo update-alternatives --install \ | |
$libraries/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so \ | |
$javapath/jre/lib/amd64/libnpjp2.so $priority | |
sudo update-alternatives --auto mozilla-javaplugin.so | |
else | |
echo 'Mozilla Firefox not found. Java Plugin for Linux will not be installed.' | |
fi | |
echo | |
########## add JAVA_HOME start ########## | |
grep -q 'JAVA_HOME' ~/.bashrc | |
if [ $? -ne 0 ]; then | |
echo 'JAVA_HOME not found. Adding JAVA_HOME to ~/.bashrc' | |
echo >> ~/.bashrc | |
echo 'export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45' >> ~/.bashrc | |
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc | |
else | |
echo 'JAVA_HOME found. No changes required to ~/.bashrc.' | |
fi | |
########## add JAVA_HOME start ########## | |
echo | |
echo '*** Java update script completed successfully ***' | |
echo | |
# confirm alternative for java-related executables | |
update-alternatives --get-selections | \ | |
grep -e java -e jar -e jexec -e appletviewer -e mozilla-javaplugin.so | |
# confirm JAVA_HOME environment variable is set | |
echo "To confirm JAVA_HOME, execute 'bash --login' and then 'echo \$JAVA_HOME'" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment