我使用openjdk17启动nacos报错
/home/software/java-17-openjdk/bin/java -Djava.ext.dirs=/home/software/java-17-openjdk/jre/lib/ext:/home/software/java-17-openjdk/lib/ext -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/software/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Dnacos.member.list= -Xloggc:/home/software/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/home/software/nacos/plugins,/home/software/nacos/plugins/health,/home/software/nacos/plugins/cmdb,/home/software/nacos/plugins/selector -Dnacos.home=/home/software/nacos -jar /home/software/nacos/target/nacos-server.jar --spring.config.additional-location=file:/home/software/nacos/conf/ --logging.config=/home/software/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
-Djava.ext.dirs=/home/software/java-17-openjdk/jre/lib/ext:/home/software/java-17-openjdk/lib/ext is not supported. Use -classpath instead.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
环境变量配置:
export JAVA_HOME=/home/software/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH
是支持jdk17的。官方的文档上明确写了是1.8及以上。
这里的错误,
-Djava.ext.dirs=/home/software/java-17-openjdk/jre/lib/ext:/home/software/java-17-openjdk/lib/ext is not supported. Use -classpath instead.
意思是这样的,java.ext.dirs 这个参数在java9之后已经被移除了,在java17上已经不支持了。nacos启动脚本 startup.sh 对这个问题也有做特殊处理:

只有版本小于9才会使用
java.ext.dirs
这个参数。所以问题就在于,这个这个脚本判断错了jdk的版本,导致了启动的时候使用错参数了。
处理这个问题,有两个方法:1. 修改脚本,兼容你的jdk版本号的输出。2. 重新下载一个其他的jdk版本。
我这里使用
openjdk:17-ea-slim-buster
这个版本的docker镜像是能正常启动的。你可以贴一下
java -version
这个命令的输出是什么。