前言:centos7,没有另外手动安装过jdk。检查java -version发现自带了jdk。
但运行javac命令报错:bash:javac:command not found
试了n种方法没能解决!
最后发现自带的jdk是没有安装开发环境的,需要安装devel才有javac命令。
问题分析:自带的jdk默认只安装了运行环境(找到jdk的安装目录下,发现只有jre文件夹,没有bin、lib等文件夹)。
自查方法:
(1)先找到jdk的安装目录
[root@localhost home]# which java
/usr/bin/java
[root@localhost home]# ls -lrt /usr/bin/java
lrwxrwxrwx. 1 root root 22 Apr 18 13:09 /usr/bin/java -> /etc/alternatives/java
[root@localhost home]# ls -lrt /etc/alternatives/java
lrwxrwxrwx. 1 root root 73 Apr 18 13:09 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/bin/java
这就是jdk安装的文件夹:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
(2)打开这个文件夹,检查它的子文件夹。如果只有jre一个文件夹,那就是需要安装devel开发环境。
[root@localhost home]# cd /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
[root@localhost java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64]# ll
total 0
drwxr-xr-x. 4 root root 28 Apr 18 13:09 jre
解决方法:使用yum安装开发环境 devel。(注意下载对应的版本。所以最好用yum找到准确的devel版本名字,精准下载)
0. 检查自己的openjdk版本,发现是1.8.0
(如果没有安装openjdk,则用yum安装openjdk之后,再来安装一次devel即可)
【参考教程linux 上使用yum 安装openjdk1.8】
[root@localhost ~]# java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64