Nacos server启动报错:Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! !!
Nacos server下载地址
服务器系统为 Ubuntu Server 20.04 LTS 64bit
使用
startup.sh -d standalone
启动后,报错:Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! !!
该报错原因是startup.sh脚本里定义的命令未找到JAVA_HOME,解决方式如下:
1.确认机器环境java是否可用:
java -version
# 正常情况下会输出
ubuntu@VM-4-9-ubuntu:/$ java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-8u312-b07-0ubuntu1~20.04-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
2.确定机器环境是否存在JAVA_HOME全局变量
echo ${JAVA_HOME}
# 正常情况下会输出
root@VM-4-9-ubuntu:/usr/bin# echo ${JAVA_HOME}
/usr/lib/jvm/java-8-openjdk-amd64
3.如果没有JAVA_HOME,则开始配置
3.1先找到java的安装目录:
ubuntu@VM-4-9-ubuntu:/$ cd /usr/bin
ubuntu@VM-4-9-ubuntu:/usr/bin$ ls -l java
lrwxrwxrwx 1 root root 22 Feb 14 11:50 java -> /etc/alternatives/java
ubuntu@VM-4-9-ubuntu:/usr/bin$ ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 46 Feb 14 11:50 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk- amd64/jre/bin/java
得到的 /usr/lib/jvm/java-8-openjdk-amd64 即为java的根目录,接下来我们开始配置/etc/profile
sudo vim /etc/profile
在文件末尾,我们加入
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
完成后保存退出,执行
source /etc/profile
再执行
echo ${JAVA_HOME}
如果还没有输出内容,可能是source命令未生效,可以强制执行
sudo reboot
重启机器(不推荐,只是提供一种方法)
完成以上步骤后,进入nacos的bin文件夹,执行
./startup.sh -m standalone
# 千万不要使用 sh startup.sh -m standalone,之前手贱写错成这个,导致-m standalone命令未生效,以集群方式启动了,服务器直接卡死
就可以正常启动,如果还是不行,可以修改startup.sh文件
...
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java
[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME
...
# 手动将AVA_HOME=$HOME/jdk/java的$HOME/jdk/java改成自己的java安装路径