如何将Linux中默认的Openjdk替换为自己安装的jdk

  • 关于出现的问题
  • 1.下载最新版jdk版本
  • 2.解压缩
  • 3.配置路径
  • 4.最后一步:配置链接组


关于出现的问题

本萌新最近在Linux想使用使用javac进行编译的时候发现一个错误:
javac not to command,于是分别查看java和javac的版本,发现java的版本为Openjdk,而javac显示未找到。总结起来就是:openjdk不完整,只能有运行java的环境,不能进行编译,即没有javac。而想要替换为自己使用的jdk有如下几步:

1.下载最新版jdk版本

我们应该下载相应的.tar.gz版本的压缩包(这里我下载的是图中所示压缩包)

Linux无Java目录 linux找不到javac_java


我们可去oracle网站进行下载:传送门

Linux无Java目录 linux找不到javac_Linux无Java目录_02

2.解压缩

将上述文件下好之后,由于我使用的是vmvare,下载了vmtools,所以可以直接将Windows的文件拷贝过去,解压缩我们可以在Linux终端中使用命令:

tar -zxvf jdk1.8.0_241.tar.gz //解压到当前文件夹

当然有图形界面的话,我们也可直接在图像用户界面解压缩,记住自己的解压缩位置。

3.配置路径

这里我首先把我的下载的jdk1.8位置挪到了:/usr/java下面,而openjdk的默认位置是/usr/bin/java,接下来我们用:

sudo vim /etc/profile

(sudo是为了在root权限下运行,如果已是root用户不加也可以)
打开该文件后直接在最后面加上:

export JAVA_HOME=/usr/java/jdk1.8.0_241/
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/rt.jar

然后我们就可以保存退出了
使用以下命令可使配置文件生效:

source /etc/profile

4.最后一步:配置链接组

虽然我们前面已经配置了路径,但是系统中默认的还是openjdk,所有我们要使用以下命令使编译和运行时用的javacjava指向我们所指向的地方:

sudo update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.8.0_241/bin/javac 300
sudo update-alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_241/bin/java 300

(最后面的300无特殊意义)
以上是针对java和javac都没有的用户执行的命令。
如果你已有java但却无javac,此时我们用的是替换命令:
(如果是有一条命令替换系统默认的另外一条命令。例如,原命令的路径为:/usr/bin/xxx,我们可采取的命令为:sudo update-alternatives --config xxx,由此可得到更新后的命令),故针对已有java版本的Linux系统我们可采用下面这条命令:

sudo update-alternatives --config java

由于我没有删掉前面的openjdk,故在我输入完这条命令后我进入了一个选择界面,选择自己想要的那个java,至此,就大功告成了。

Linux无Java目录 linux找不到javac_shell_03