从网上下载了一个1.8版本的jdk的压缩包,传到Fedora下解压后,修改/etc/profile文件,在文件的
结尾处增加以下几句话:
export JAVA_HOME=/usr/java/jdk1.8.0_181
export JRE_HOME=/usr/java/jdk1.8.0_181/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
重启后,用echo查看以上几个全局变量,已经成功修改,但是用
java -version
命令查看jdk版本,是1.6版本的,而不是1.8版本。
(参看https://blog.csdn.net/leafinsnowfield/article/details/52598762)
用
rpm -qa | grep jdk
命令查看,发现系统默认启动的是1.6版本的jdk,
使用以下命令卸载自带的jdk:
rpm -e --nodeps <用上面命令查看到的jdk>
检查jdk是否卸载完毕
rpm -qa|grep jdk
此时结果显示为空了。
但是用
java -version
命令查看,发现java的版本是1.5,还不是1.8版本。
我手动删除了jdk1.5相关的一些文件和目录。
还需要修改selinux相关的一些文件。
编辑/etc/selinux/config,找到这段:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing
把 SELINUX=enforcing 注释掉:#SELINUX=enforcing ,然后新加一行为:
SELINUX=disabled
保存,关闭。
编辑/etc/sysconfig/selinux,找到:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing
如果SELINUX已经是 SELINUX=disabled,那么就不用改了,否则就把SELINUX=enforcing 注释掉,新加一行:
SELINUX=disabled
保存,退出。
如果你碰到其他类似提示:
cannot restore segment prot after reloc: Permission denied
哪应该是SELinux的问题,可以考虑把它关闭。
-------------------------------------------------------------------------------------
郁闷的是.我把SELinux关闭后还是不行.于是到google上search.发现这个很有用.
在你保证SElinux 被disable后.还执行下
chcon -t texrel_shlib_t
如: chcon -t texrel_shlib_t /路径/路径/名字.so (这个文件视具体执行文件.)
以上两步.已经解决了很多server的问题了.
参考https://blog.csdn.net/wei801004/article/details/4318852
参考https://www.cnblogs.com/qmfsun/p/5591732.html
jdk下载官网地址
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html