对于安装环境,之前一直用的是1.7的版本,最近要求改成1.8的版本,但是有的服务器已经安装好环境,以及部分服务器可能有自带的JDK,或者是安装到一半的环境。。。。。
以下是一个简单的脚本,可以实现简单的一键安装功能。()
mkdir /usr/java
mkdir /znywImage
cp -f /usr/jdk-8u161-linux-x64.tar.gz /usr/java
tomcatPath=/usr/apache-tomcat-8.5.20
if [ -d "$tomcatPath" ]; then
echo "删除$tomcatPath目录"
sudo rm -rf $tomcatPath
echo "目录$tomcatPath删除成功"
fi
jdkPath=/usr/java/jdk1.8.0_161
if [ -d "$jdkPath" ]; then
echo "删除$jdkPath目录"
sudo rm -rf $jdkPath
echo "目录$jdkPath删除成功"
fi
tar -xzvf /usr/apache-tomcat-8.5.20.tar.gz -C /usr
tar -xzvf /usr/java/jdk-8u161-linux-x64.tar.gz -C /usr/java
myfile=/etc/profile
echo "原来文件的总行数"
awk 'END{print NR}' $myfile
echo "jdk开始的行数"
grep -an "export JAVA_HOME=/usr/java/" $myfile |cut -d: -f1
echo "jdk结束的行数"
grep -an "export PATH=" $myfile |cut -d: -f1
echo "开始准备删除文件中的重复数据"
startLine=$(grep -an "export JAVA_HOME=/usr/java/" $myfile |cut -d: -f1)
endLine=$(grep -an "export PATH=" $myfile |cut -d: -f1)
sed -i $startLine','$endLine'd' $myfile
echo "删除完毕!!!!"
echo "文件剩余行数"
awk 'END{print NR}' $myfile
echo "测试结束!!"
echo "export JAVA_HOME=/usr/java/jdk1.8.0_161" >> /etc/profile
echo "export JRE_HOME=/usr/java/jdk1.8.0_161/jre" >> /etc/profile
echo "export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib" >> /etc/profile
echo "export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin" >> /etc/profile
cp -f /usr/server.xml /usr/apache-tomcat-8.5.20/conf
echo "server.xml移动成功"
`source /etc/profile`
source /etc/profile
javac
echo "配置环境成功"
echo "测试是否安装成功"
java -version
echo "-----------------------------------"
javac -version
echo "JDK安装成功"
rebootfile=/etc/rc.d/rc.local
echo "原来文件的总行数"
awk 'END{print NR}' $rebootfile
echo "自启动开始的行数"
grep -an "export JAVA_HOME=/usr/java/" $rebootfile |cut -d: -f1
echo "自启动结束的行数"
grep -an "/usr/apache-tomcat-8.5.20/bin/startup.sh start" $rebootfile |cut -d: -f1
echo "开始准备自启动删除文件中的重复数据"
startLine=$(grep -an "export JAVA_HOME=/usr/java/" $rebootfile |cut -d: -f1)
endLine=$(grep -an "/usr/apache-tomcat-8.5.20/bin/startup.sh start" $rebootfile |cut -d: -f1)
sed -i $startLine','$endLine'd' $rebootfile
echo "删除完毕!!!!"
echo "文件剩余行数"
awk 'END{print NR}' $rebootfile
echo "测试结束!!"
echo "linux自启动Tomcat"
echo "export JAVA_HOME=/usr/java/jdk1.8.0_161" >> /etc/rc.d/rc.local
echo "/usr/apache-tomcat-8.5.20/bin/startup.sh start" >> /etc/rc.d/rc.local
chmod 777 /etc/rc.d/rc.local
cp -f /usr/znywSNMP.war /usr/apache-tomcat-8.5.20/webapps
cp -f /usr/zhyw.war /usr/apache-tomcat-8.5.20/webapps
cp -f /usr/zhywFileUpload.war /usr/apache-tomcat-8.5.20/webapps
cd /usr/apache-tomcat-8.5.20/bin
./startup.sh
echo "tomcat起动成功!!"
chmod 700 JAVA.sh
然后可能会出现虽然Tomcat可以正常运行,但是,当你输入javac -version 和 java -version时,可能会出现以下问题:
1.javac -version 出不来:
你可以尝试一下,手动配置/etc/profile这个文件(vim /etc/profile --->输入 i --->进行配置,系统文件,需要谨慎修改-->esc---->:wq----->source profile(让这个文件生效))
具体内容:
export JAVA_HOME=/usr/java/jdk1.8.0_161
export JRE_HOME=/usr/java/jdk1.8.0_161/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
2.javac -version 和 java -version版本不一致:(在网上找的,可以参考,但是具体情况还是可能会有区别的)
查看自带的jdk:
#rpm -qa|grep gcj
可能看到如下类似的信息:
libgcj-4.1.2-44.el5
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
使用rpm -e --nodeps 命令删除上面查找的内容:
#rpm -e –nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
卸载rpm安装的jkd版本
查看安装的jdk:
#rpm -qa|grep jdk
可能看到如下类似的信息:
jdk-1.6.0_22-fcs
卸载:
#rpm -e --nodeps jdk-1.6.0_22-fcs
网上一般都是这个版本的答案,其实我输出的并没有带fcs的,而且也没有自带的JDK,
这个时候,看了你另外一个博客上面说,需要删除一些文件,虽然我安装了JDK,但是由于之前有人安装过其他版本,所以指定的并不是我想让它运行的那个文件夹下面的东西,,,,,,我记得好像是删了一个java文件,好像在alternative什么文件夹里面的,但是后来发现,,,,what,,,,,java -version 直接报 没有那个文件或者目录,,,心塞啊。。。。。。
后来,我又检查了一遍环境变量的配置,后来发现:一个大神的博客,神奇的解决了问题:
[root@localhost usr]# $JAVA_HOME/bin/java -version
bash: /bin/java: 没有那个文件或目录
和直接输入java -version结果一样 但是神奇的就是下面啦
. /etc/profile
$JAVA_HOME/bin/java -version
这个时候,安装的版本就出来啦,而且就是我刚刚安装的版本,没有问题
这个时候,检查一下,你会发现:
which java
结果是:/usr/bin/java
这就是为什么直接输入:java -version 结果要么不是自己最新安装的JDK版本,要么就是报没有这个文件或目录的原因
这个时候,可以用下面的指令
mv /usr/bin/java /usr/bin/oldjava
ln -s $JAVA_HOME/bin/java /usr/bin/java
然后,你输入java -version和javac -version就出来啦,而且版本一致,且是最新的
一般,可以直接手动在linux上面安装java环境,主要就是修改/etc/profile文件和Tomcat自启动时,配置一下/etc/rc.d/rc.local这个文件就可以啦。。。。。。。。