nacos2.2.3 支持jdk17吗?

新手上路,请多包涵

我使用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
阅读 4.4k
1 个回答

是支持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 对这个问题也有做特殊处理:
image.png

只有版本小于9才会使用java.ext.dirs这个参数。

所以问题就在于,这个这个脚本判断错了jdk的版本,导致了启动的时候使用错参数了。
处理这个问题,有两个方法:1. 修改脚本,兼容你的jdk版本号的输出。2. 重新下载一个其他的jdk版本。

我这里使用 openjdk:17-ea-slim-buster 这个版本的docker镜像是能正常启动的。

你可以贴一下 java -version 这个命令的输出是什么。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进