背景

在中标麒麟操作系统安装时勾选“开发环境”,将安装openjdk-1.8开发环境。但某些项目需要高版本的openjdk。本文提供两种安装配置openjdk-11的方法:

        方法A安装openjdk-11,将覆盖openjdk-1.8的配置。

        方法B则支持多版本的openjdk切换。

在mips平台上,openjdk-11属于二进制打包,由龙芯提供,需要手动解压安装。openjdk-11下载地址:http://www.loongnix.cn/zh/api/java/downloads-jdk11/index.html

安装过程请使用root用户,防止某些目录或命令出现无权限的情况。

方法A

1)解压安装包到要安装的目录,这里以 /opt/ 目录为例。

tar -xvf loongson11.2.0-jdk11.0.15_10-linux-loongson3a.tar.gz -C /opt/

2)配置环境变量。

        将JAVA_HOME和PATH配置在/etc/profile文件中,在该文件最后加上 ”export JAVA_HOME=/opt/jdk-11.0.15” 和 “export  PATH=$JAVA_HOME/bin:$PATH” 两句,保存退出。

export  JAVA_HOME=/opt/jdk-11.0.15
export  PATH=$JAVA_HOME/bin:$PATH

3)使配置的环境变量生效,可以重启机器或使用source命令:

source /etc/profile

4)使用任意用户验证java命令和javac命令:

java -version
javac -version

java可以在麒麟系统上 中标麒麟安装jdk_jar

方法B

1)【同方法A】解压安装包到要安装的目录,这里以 /opt/ 目录为例。

2)使用alternatives配置多版本JDK。此方法无需修改环境变量,alternatives会根据当前选择的版本,自动在/usr/bin目录下创建对应版本JDK的链接。中标麒麟V5默认集成的JDK-1.8也是此方法配置的。(下列a和b,根据需要二选一即可。注意空格)

        a)一般只使用java和javac,此时只需要两条简单配置命令:

alternatives --install /usr/bin/java java /opt/jdk-11.0.15/bin/java 1100015
alternatives --install /usr/bin/javac javac /opt/jdk-11.0.15/bin/javac 1100015

        b)当需要安装对应的其他java工具或命令(如jjs,jar,jcmd等)时,需要用alternatives完整配置java和javac。将各个工具,作为“从配置“分别挂在java和javac的配置下。两条命令分别为:

alternatives \
  --install /usr/bin/java java /opt/jdk-11.0.15/bin/java 1100015 \
  --slave /usr/bin/jjs jjs /opt/jdk-11.0.15/bin/jjs \
  --slave /usr/bin/keytool keytool /opt/jdk-11.0.15/bin/keytool \
  --slave /usr/bin/pack200 pack200 /opt/jdk-11.0.15/bin/pack200 \
  --slave /usr/bin/rmid rmid /opt/jdk-11.0.15/bin/rmid \
  --slave /usr/bin/rmiregistry rmiregistry /opt/jdk-11.0.15/bin/rmiregistry \
  --slave /usr/bin/unpack200 unpack200 /opt/jdk-11.0.15/bin/unpack200 

alternatives \
  --install /usr/bin/javac javac /opt/jdk-11.0.15/bin/javac 1100015 \
  --slave /usr/bin/jar jar /opt/jdk-11.0.15/bin/jar \
  --slave /usr/bin/jarsigner jarsigner /opt/jdk-11.0.15/bin/jarsigner \
  --slave /usr/bin/javadoc javadoc /opt/jdk-11.0.15/bin/javadoc \
  --slave /usr/bin/javap javap /opt/jdk-11.0.15/bin/javap \
  --slave /usr/bin/jcmd jcmd /opt/jdk-11.0.15/bin/jcmd \
  --slave /usr/bin/jconsole jconsole /opt/jdk-11.0.15/bin/jconsole \
  --slave /usr/bin/jdb jdb /opt/jdk-11.0.15/bin/jdb \
  --slave /usr/bin/jdeprscan jdeprscan /opt/jdk-11.0.15/bin/jdeprscan \
  --slave /usr/bin/jdeps jdeps /opt/jdk-11.0.15/bin/jdeps \
  --slave /usr/bin/jfr jfr /opt/jdk-11.0.15/bin/jfr \
  --slave /usr/bin/jhsdb jhsdb /opt/jdk-11.0.15/bin/jhsdb \
  --slave /usr/bin/jimage jimage /opt/jdk-11.0.15/bin/jimage \
  --slave /usr/bin/jinfo jinfo /opt/jdk-11.0.15/bin/jinfo \
  --slave /usr/bin/jlink jlink /opt/jdk-11.0.15/bin/jlink \
  --slave /usr/bin/jmap jmap /opt/jdk-11.0.15/bin/jmap \
  --slave /usr/bin/jmod jmod /opt/jdk-11.0.15/bin/jmod \
  --slave /usr/bin/jps jps /opt/jdk-11.0.15/bin/jps \
  --slave /usr/bin/jrunscript jrunscript /opt/jdk-11.0.15/bin/jrunscript \
  --slave /usr/bin/jshell jshell /opt/jdk-11.0.15/bin/jshell \
  --slave /usr/bin/jstack jstack /opt/jdk-11.0.15/bin/jstack \
  --slave /usr/bin/jstat jstat /opt/jdk-11.0.15/bin/jstat \
  --slave /usr/bin/jstatd jstatd /opt/jdk-11.0.15/bin/jstatd \
  --slave /usr/bin/rmic rmic /opt/jdk-11.0.15/bin/rmic \
  --slave /usr/bin/serialver serialver /opt/jdk-11.0.15/bin/serialver

     配置完alternatives的设置后,就可以根据需要,通过命令切换openjdk版本了:

alternatives  --config  java
alternatives  --config  javac

小结

使用方法A配置openjdk-11,相当于通过修改环境变量的方式,让操作系统优先找到openjdk-11。达到不用卸载系统原有软件包,直接使用高版本openjdk的目的。后续可以通过再次修改环境变量的方法,将openjdk还原成系统预装的版本。

使用方法B配置openjdk-11,借助了alternatives工具,该工具常用于同一个系统中安装同一软件的多个版本,可以很方便的选择不同版本的openjdk环境。alternatives也可以配置其他的开发环境。