問題描述:在Linux RedHat5.5中安裝的JDK1.7,而且經過在profile文件中修改JAVA_HOME,發現java -version命令依舊顯示1.4版本,分析緣由發現系統不按照profile的設定來執行java 命令,而是經過/usr/java下的系統自帶的JDK程序進行運行,無奈之下治好經過rm -rf命令刪除/usr/java下的全部文件,而後再次運行java命令,出現以下問題:java
Error: dl failure on line 864 Error: failed /home/app/jdk1.7.0_21/jre/lib/i386/client/libjvm.so, because /home/app/jdk1.7.0_21/jre/lib/i386/client/libjvm.so: cannot restore segment prot after reloc: Permission denied
分析結果:最後的Permission denied顯示,初步認爲是系統安全屏蔽了java執行某些執行動做。因而檢查系統防火牆iptables,已經關閉,因而想到了Selinuxlinux
解決的方法有兩個:安全
一、直接輸入:/usr/sbin/setenforce 0 意思是關閉SELINUX,可是這個只是會話級別的設置app
二、全局設置關閉SELINUX,經過編輯/etc/sysconfig/selinux文件,將SELINUX參數修改爲disabled,而後重啓便可jvm