繁体   English   中英

如何在CentOS上安装jdk7?

[英]How to install jdk7 on CentOS?

我正在尝试在我的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版本。 谁知道还有什么需要做?

如果必须安装Java的个人副本,则应该只编辑PATH 如果您要使用该路由,则需要确保首选Java版本的bin目录位于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,安装在/usr/java的RPM,而tar.gz可能应该提取到该目录或其他非用户特定目录,如/opt/java等等。 我个人推荐RPM,所以安装会是这样的:

yum localinstall jdk-8u5-linux-x64.rpm
yum localinstall jdk-8u5-linux-x64-demos.rpm

安装后来了alternatives命令然而大多数人和文档变得懒惰(看看另一个答案指向的CentOS维基页面,我的意思是懒惰)。 你真的应该使用alternatives命令不仅设置javajavac ,还要设置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 javaalternatives --config javac

运行alternatives命令后,您希望通过运行makewhatis来更新man page关键字数据库。

然后你可能想为你的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上写了更多细节。

您可能在/ usr / bin / java中有链接到另一个java安装目录。

检查关于CentOS的替代品

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM