背景
在一臺阿里云服務器上需要搭建nacos集群,服務器是centos7.
先是使用安裝上傳命令
yum install lrzsz
rz:從本地上傳文件至服務器
sz filename:從服務器下載文件至本地
然后各種準備文件和數據庫,最后執行nacos的sh startup.sh命令,報錯信息:
which: no JAVAc in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
readlink: missing operand
Try 'readlink --help' for more information.
dirname: missing operand
Try 'dirname --help' for more information.
ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! !!
查找原因:。
好久沒有安裝過jdk了,平時在windows上安裝,配置一下環境變量,基本都是幾分鐘搞定,信心滿滿的開始了踩坑之路
安裝踩坑錄
使用了最簡單的安裝方式:
1.先查詢一下庫里有的jdk版本
yum search java|grep jdk
2.選擇安裝1.8 最新版本
yum install java-1.8.0-openjdk
3.設置環境變量
[root@localhost ~]# vi /etc/profile
添加
#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
讓修改生效:
source /etc/profile
4.驗證
java -version
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)
本以為完事大吉了,繼續執行nacos的sh startup.sh命令,仍然同樣的報錯。
報錯信息:
which: no javac in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
readlink: missing operand
Try 'readlink --help' for more information.
dirname: missing operand
Try 'dirname --help' for more information.
ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! !!
使用命令查看javac
which javac
報錯:
which: no javac in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
查找jdk安裝路徑:
ls -lrt /usr/bin/java
lrwxrwxrwx 1 root root 22 Apr 12 13:44 /usr/bin/java -> /etc/alternatives/java
ls -lrt /etc/alternatives/java
lrwxrwxrwx 1 root root 73 Apr 12 13:44 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64/jre/bin/java
cd /usr/lib/jvm
ll
5. 多次嘗試修改環境變量的位置,然后source /etc/profile
然后其中一臺服務器被玩壞了,修改/etc/profile配置錯誤command is not found
/usr/libexec/grepconf.sh: line 5: grep: command not found
很多命令如ls,yum命令都不能使用了,想著重置系統,發現太麻煩了,從網上發現一個可行的解決方式:
1.找到另一條好好的服務器,
echo $PATH
得到完整的路徑
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64/jre/bin:/root/bin
2.在玩壞的服務器上執行
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64/jre/bin:/root/bin
然后讓變量生效:
source /etc/profile
命令都生效了,可以正常使用了。
6.經過搜索網上,最終發現openjdk安裝需要兩部分:
安裝jre:
sudo yum install java-1.8.0-openjdk -y
安裝jdk:
sudo yum install java-1.8.0-openjdk-devel -y
此時,使用which javac命令來看
which javac
/usr/bin/javac
總結
openjdk和oracle的jdk是不一樣的,安裝時請一定注意。