我正在尝试在我的CentOS 6.5机器上安装jdk7.实际上,我以为我已经在6个月前做过了,但是当我打字的时候,java -version
我看到了javac 1.6.0_30
.
我已经下载了jdk-7u25-linux-x64.tar.gz,验证了校验和,然后解压缩到/home/username/java/jdk7u25/jdk1.7.0_25
.
然后我编辑了我的.bash_profile
文件,其中包括:
... export JAVA_PATH=$JAVA_HOME export PATH=$PATH:$JAVA_HOME/bin ... export PATH=$PATH:$JRE_HOME/bin
当我输入source .bash_profile
,然后java -version
我仍看到相同的1.6版本,上面提到的.谁知道还有什么需要做?
PATH
如果您必须安装Java的个人副本,则应该只编辑您的.如果你要走那条路,那么你需要确保bin
你首选的Java版本的目录在你的开头PATH
,如下:
export JAVA_PATH=$JAVA_HOME export PATH=$JAVA_HOME/bin:$PATH export PATH=$JRE_HOME/bin:$PATH
但处理此问题的更好方法是安装Java并使用该alternatives
命令.如果你可以使用OpenJDK,你可以尝试:
yum install java-1.7.0-openjdk yum install java-1.7.0-openjdk-devel
安装OpenJDK后,它将运行alternatives
命令以正确配置所有内容.如果您想使用Oracle JDK,那么您可以使用RPM或tar.gz,安装的RPM,/usr/java
而tar.gz可能应该被解压缩到该目录或其他非用户特定目录/opt/java
.我个人推荐RPM,所以安装会是这样的:
yum localinstall jdk-8u5-linux-x64.rpm yum localinstall jdk-8u5-linux-x64-demos.rpm
安装之后来了alternatives
命令然而大多数人和文档变得懒惰(看看另一个答案指向的CentOS维基页面,我的意思是懒惰).你真的应该使用alternatives
命令来设置不仅java
和javac
,而且全部都使用Java和手册页这些命令的其它命令.你应该运行:
jdk=/usr/java/jdk1.8.0_05 jre=$jdk/jre alternatives \ --install /usr/bin/java java $jre/bin/java 180005 \ --slave /usr/lib/jvm/jre jre $jre \ --slave /usr/bin/keytool keytool $jre/bin/keytool \ --slave /usr/bin/orbd orbd $jre/bin/orbd \ --slave /usr/bin/pack200 pack200 $jre/bin/pack200 \ --slave /usr/bin/rmid rmid $jre/bin/rmid \ --slave /usr/bin/rmiregistry rmiregistry $jre/bin/rmiregistry \ --slave /usr/bin/servertool servertool $jre/bin/servertool \ --slave /usr/bin/tnameserv tnameserv $jre/bin/tnameserv \ --slave /usr/bin/unpack200 unpack200 $jre/bin/unpack200 \ --slave /usr/bin/javaws javaws $jre/bin/javaws \ --slave /usr/bin/jjs jjs $jre/bin/jjs \ --slave /usr/share/man/man1/java.1 java.1 \ $jdk/man/man1/java.1 \ --slave /usr/share/man/man1/keytool.1 keytool.1 \ $jdk/man/man1/keytool.1 \ --slave /usr/share/man/man1/orbd.1 orbd.1 \ $jdk/man/man1/ordb.1 \ --slave /usr/share/man/man1/pack200.1 pack200.1 \ $jdk/man/man1/pack200.1 \ --slave /usr/share/man/man1/rmid.1 rmid.1 \ $jdk/man/man1/rmid.1 \ --slave /usr/share/man/man1/rmiregistry.1 rmiregistry.1 \ $jdk/man/man1/rmiregistry.1 \ --slave /usr/share/man/man1/servertool.1 servertool.1 \ $jdk/man/man1/servertool.1 \ --slave /usr/share/man/man1/tnameserv.1 tnameserv.1 \ $jdk/man/man1/tnameserv.1 \ --slave /usr/share/man/man1/unpack200.1 unpack200.1 \ $jdk/man/man1/unpack200.1 \ --slave /usr/share/man/man1/javaws.1 javaws.1 \ $jdk/man/man1/javaws.1 \ --slave /usr/share/man/man1/jjs.1 jjs.1 \ $jdk/man/man1/jjs.1 alternatives \ --install /usr/lib/jvm/jre-1.8.0 \ jre_1.8.0 $jre 180005 \ alternatives \ --install /usr/bin/javac javac $jdk/bin/javac 180005 \ --slave /usr/lib/jvm/java java_sdk $jdk \ --slave /usr/bin/appletviewer appletviewer $jdk/bin/appletviewer \ --slave /usr/bin/extcheck extcheck $jdk/bin/extcheck \ --slave /usr/bin/idlj idlj $jdk/bin/idlj \ --slave /usr/bin/jar jar $jdk/bin/jar \ --slave /usr/bin/jarsigner jarsigner $jdk/bin/jarsigner \ --slave /usr/bin/javadoc javadoc $jdk/bin/javadoc \ --slave /usr/bin/javafxpackager javafxpackager $jdk/bin/javafxpackager \ --slave /usr/bin/javah javah $jdk/bin/javah \ --slave /usr/bin/javap javap $jdk/bin/javap \ --slave /usr/bin/jcmd jcmd $jdk/bin/jcmd \ --slave /usr/bin/jconsole jconsole $jdk/bin/jconsole \ --slave /usr/bin/jdb jdb $jdk/bin/jdb \ --slave /usr/bin/jdeps jdeps $jdk/bin/jdeps \ --slave /usr/bin/jhat jhat $jdk/bin/jhat \ --slave /usr/bin/jinfo jinfo $jdk/bin/jinfo \ --slave /usr/bin/jmap jmap $jdk/bin/jmap \ --slave /usr/bin/jmc jmc $jdk/bin/jmc \ --slave /usr/bin/jps jps $jdk/bin/jps \ --slave /usr/bin/jrunscript jrunscript $jdk/bin/jrunscript \ --slave /usr/bin/jsadebugd jsadebugd $jdk/bin/jsadebugd \ --slave /usr/bin/jstack jstack $jdk/bin/jstack \ --slave /usr/bin/jstat jstat $jdk/bin/jstat \ --slave /usr/bin/jstatd jstatd $jdk/bin/jstatd \ --slave /usr/bin/jvisualvm jvisualvm $jdk/bin/jvisualvm \ --slave /usr/bin/native2ascii native2ascii $jdk/bin/native2ascii \ --slave /usr/bin/policytool policytool $jdk/bin/policytool \ --slave /usr/bin/rmic rmic $jdk/bin/rmic \ --slave /usr/bin/schemagen schemagen $jdk/bin/schemagen \ --slave /usr/bin/serialver serialver $jdk/bin/serialver \ --slave /usr/bin/wsgen wsgen $jdk/bin/wsgen \ --slave /usr/bin/wsimport wsimport $jdk/bin/wsimport \ --slave /usr/bin/xjc xjc $jdk/bin/xjc \ --slave /usr/share/man/man1/appletviewer.1 appletviewer.1 \ $jdk/man/man1/appletviewer.1 \ --slave /usr/share/man/man1/extcheck.1 extcheck.1 \ $jdk/man/man1/extcheck.1 \ --slave /usr/share/man/man1/idlj.1 idlj.1 \ $jdk/man/man1/idlj.1 \ --slave /usr/share/man/man1/jar.1 jar.1 \ $jdk/man/man1/jar.1 \ --slave /usr/share/man/man1/jarsigner.1 jarsigner.1 \ $jdk/man/man1/jarsigner.1 \ --slave /usr/share/man/man1/javac.1 javac.1 \ $jdk/man/man1/javac.1 \ --slave /usr/share/man/man1/javadoc.1 javadoc.1 \ $jdk/man/man1/javadoc.1 \ --slave /usr/share/man/man1/javafxpackager.1 javafxpackager.1 \ $jdk/man/man1/javafxpackager.1 \ --slave /usr/share/man/man1/javah.1 javah.1 \ $jdk/man/man1/javah.1 \ --slave /usr/share/man/man1/javap.1 javap.1 \ $jdk/man/man1/javap.1 \ --slave /usr/share/man/man1/jcmd.1 jcmd.1 \ $jdk/man/man1/jcmd.1 \ --slave /usr/share/man/man1/jconsole.1 jconsole.1 \ $jdk/man/man1/jconsole.1 \ --slave /usr/share/man/man1/jdb.1 jdb.1 \ $jdk/man/man1/jdb.1 \ --slave /usr/share/man/man1/jdeps.1 jdeps.1 \ $jdk/man/man1/jdeps.1 \ --slave /usr/share/man/man1/jhat.1 jhat.1 \ $jdk/man/man1/jhat.1 \ --slave /usr/share/man/man1/jinfo.1 jinfo.1 \ $jdk/man/man1/jinfo.1 \ --slave /usr/share/man/man1/jmap.1 jmap.1 \ $jdk/man/man1/jmap.1 \ --slave /usr/share/man/man1/jmc.1 jmc.1 \ $jdk/man/man1/jmc.1 \ --slave /usr/share/man/man1/jps.1 jps.1 \ $jdk/man/man1/jps.1 \ --slave /usr/share/man/man1/jrunscript.1 jrunscript.1 \ $jdk/man/man1/jrunscript.1 \ --slave /usr/share/man/man1/jsadebugd.1 jsadebugd.1 \ $jdk/man/man1/jsadebugd.1 \ --slave /usr/share/man/man1/jstack.1 jstack.1 \ $jdk/man/man1/jstack.1 \ --slave /usr/share/man/man1/jstat.1 jstat.1 \ $jdk/man/man1/jstat.1 \ --slave /usr/share/man/man1/jstatd.1 jstatd.1 \ $jdk/man/man1/jstatd.1 \ --slave /usr/share/man/man1/jvisualvm.1 jvisualvm.1 \ $jdk/man/man1/jvisualvm.1 \ --slave /usr/share/man/man1/native2ascii.1 native2ascii.1 \ $jdk/man/man1/native2ascii.1 \ --slave /usr/share/man/man1/policytool.1 policytool.1 \ $jdk/man/man1/policytool.1 \ --slave /usr/share/man/man1/rmic.1 rmic.1 \ $jdk/man/man1/rmic.1 \ --slave /usr/share/man/man1/schemagen.1 schemagen.1 \ $jdk/man/man1/schemagen.1 \ --slave /usr/share/man/man1/serialver.1 serialver.1 \ $jdk/man/man1/serialver.1 \ --slave /usr/share/man/man1/wsgen.1 wsgen.1 \ $jdk/man/man1/wsgen.1 \ --slave /usr/share/man/man1/wsimport.1 wsimport.1 \ $jdk/man/man1/wsimport.1 \ --slave /usr/share/man/man1/xjc.1 xjc.1 \ $jdk/man/man1/xjc.1 alternatives \ --install /usr/lib/jvm/java-1.8.0 \ java_sdk_1.8.0 $jdk 180005 \
这是我的JDK 8的例子,但是如果换掉jdk=
你的路径的线路将会接近,但是有一些新的命令带有8和一个从8下降,所以如果你真的需要一些轻微的调整想安装7.另请注意1800005
数字.使用该alternatives
命令,较大的数字是默认选择,OpenJDK 7u55使用170055.如果您选择的数字低于您安装的任何OpenJDK使用的数字,您将需要运行alternatives --config java
和alternatives --config javac
.
运行alternatives
命令后,您要通过运行更新man page page database makewhatis
.
然后你可能想为你的Firefox安装Java插件:
ln -s /usr/java/jdk1.8.0_05/jre/lib/amd64/libnpjp2.so /usr/lib64/mozilla/plugins/
然后,您需要将Java控制面板添加到System-> Preferences菜单,并设置要双击的JAR:
/bin/cp -fr /usr/java/jdk1.8.0_05/jre/lib/desktop/* /usr/share/ /bin/cp -fr /usr/java/jdk1.8.0_05/jre/lib/desktop/icons/hicolor/* /usr/share/icons/System /usr/bin/gtk-update-icon-cache -f /usr/share/icons/System /usr/bin/update-desktop-database
如果不清楚的话,你就是这样做的root
.如果你没有,root
那么只需使用tar.gz版本并修复你的PATH
.我在http://blog.osdev.org/java/2014/04/22/jdk-alternatives.html上写了更多细节.