Skip to content

Commit 5569b41

Browse files
committed
Add install-java script
1 parent 24de3a4 commit 5569b41

File tree

1 file changed

+153
-0
lines changed

1 file changed

+153
-0
lines changed

install-java.sh

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
#!/bin/bash
2+
# ----------------------------------------------------------------------------
3+
# Description : Installation script for setting up Java on Linux
4+
# Author : M. Isuru Tharanga Chrishantha Perera
5+
# ----------------------------------------------------------------------------
6+
7+
set -e
8+
9+
java_dist=""
10+
java_dir="/usr/lib/jvm"
11+
12+
function help {
13+
echo ""
14+
echo "Usage: "
15+
echo "install_java.sh -f <java_dist> [-p] <java_dir>"
16+
echo ""
17+
echo "-f: The jdk tar.gz file"
18+
echo "-p: Java installation directory"
19+
echo ""
20+
}
21+
22+
confirm () {
23+
# call with a prompt string or use a default
24+
read -r -p "${1:-Are you sure?} [y/N] " response
25+
case $response in
26+
[yY][eE][sS]|[yY])
27+
true
28+
;;
29+
*)
30+
false
31+
;;
32+
esac
33+
}
34+
35+
# Make sure the script is running as root.
36+
if [ "$UID" -ne "0" ]; then
37+
echo "You must be root to run $0. Try following"; echo "sudo $0";
38+
exit 9
39+
fi
40+
41+
42+
while getopts ":f:p" opts
43+
do
44+
case $opts in
45+
f)
46+
java_dist=${OPTARG}
47+
;;
48+
p)
49+
java_dir=${OPTARG}
50+
;;
51+
\?)
52+
help
53+
exit 1
54+
;;
55+
esac
56+
done
57+
58+
if [[ ! -f $java_dist ]]; then
59+
echo "Please specify the java distribution file (tar.gz)"
60+
help
61+
exit 1
62+
fi
63+
64+
if [[ ! -d $java_dir ]]; then
65+
echo "Please specify a valid java installation directory"
66+
exit 1
67+
fi
68+
69+
#If no directory was provided, we need to create the default one
70+
mkdir -p $java_dir
71+
72+
# Extract Java Distribution
73+
74+
java_dist_filename=$(basename $java_dist)
75+
76+
dirname=$(echo $java_dist_filename | sed 's/jdk-\([78]\)u\([0-9]\{2\}\)-linux.*/jdk1.\1.0_\2/')
77+
78+
extracted_dirname=$java_dir"/"$dirname
79+
80+
if [[ ! -d $extracted_dirname ]]; then
81+
echo "Extracting $java_dist to $java_dir"
82+
tar -xf $java_dist -C $java_dir
83+
echo "JDK is extracted to $extracted_dirname"
84+
else
85+
echo "JDK is already extracted to $extracted_dirname"
86+
fi
87+
88+
89+
if [[ ! -f $extracted_dirname"/bin/java" ]]; then
90+
echo "Couldn't check the extracted directory. Please check the installation script"
91+
exit 1
92+
fi
93+
94+
# Install Demos
95+
96+
demos_dist=$(dirname $java_dist)/$(echo $java_dist_filename | sed 's/jdk-\([78]u[0-9]\{2\}\)-linux-\(.*\).tar.gz/jdk-\1-linux-\2-demos.tar.gz/')
97+
98+
if [[ -f $demos_dist && ! -d $extracted_dirname/demo ]]; then
99+
# No demo directory
100+
if (confirm "Extract demos?"); then
101+
echo "Extracting $demos_dist to $java_dir"
102+
tar -xf $demos_dist -C $java_dir
103+
fi
104+
fi
105+
106+
# Install Unlimited JCE Policy
107+
108+
unlimited_jce_policy_dist=""
109+
110+
if [[ "$java_dist_filename" =~ ^jdk-7.* ]]; then
111+
unlimited_jce_policy_dist="$(dirname $java_dist)/UnlimitedJCEPolicyJDK7.zip"
112+
elif [[ "$java_dist_filename" =~ ^jdk-8.* ]]; then
113+
unlimited_jce_policy_dist="$(dirname $java_dist)/jce_policy-8.zip"
114+
fi
115+
116+
if [[ -f $unlimited_jce_policy_dist ]]; then
117+
if (confirm "Install Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files?"); then
118+
echo "Extracting policy jars in $unlimited_jce_policy_dist to $extracted_dirname/jre/lib/security"
119+
unzip -j -o $unlimited_jce_policy_dist *.jar -d $extracted_dirname/jre/lib/security
120+
fi
121+
fi
122+
123+
# Run update-alternatives commands
124+
125+
commands=( "jar" "java" "javac" "javadoc" "javah" "javap" "javaws" "jcmd" "jconsole" "jarsigner" "jhat" "jinfo" "jmap" "jps" "jstack" "jstat" "jstatd" "keytool" "policytool" "wsgen" "wsimport" )
126+
127+
if (confirm "Run update-alternatives commands?"); then
128+
echo "Running update-alternatives --install for ${commands[@]} mozilla-javaplugin.so"
129+
130+
for i in "${commands[@]}"
131+
do
132+
sudo update-alternatives --install "/usr/bin/$i" "$i" "$extracted_dirname/bin/$i" 1
133+
done
134+
135+
sudo update-alternatives --install "/usr/lib/mozilla/plugins/libjavaplugin.so" "mozilla-javaplugin.so" "$extracted_dirname/jre/lib/amd64/libnpjp2.so" 1
136+
137+
echo "Running update-alternatives --config"
138+
139+
for i in "${commands[@]}"
140+
do
141+
sudo update-alternatives --config "$i"
142+
done
143+
144+
sudo update-alternatives --config "mozilla-javaplugin.so"
145+
fi
146+
147+
# Configure Java Mission Control
148+
149+
missioncontrol_config=$extracted_dirname/lib/missioncontrol/configuration/config.ini
150+
151+
if ( (! grep -q mozilla "$missioncontrol_config") && confirm "Change default browser in Java Mission Control to Mozilla?"); then
152+
echo org.eclipse.swt.browser.DefaultType=mozilla >> $missioncontrol_config
153+
fi

0 commit comments

Comments
 (0)