尝试启动SonarQube时发生以下错误:
C:sonarqube-9.5.0.56709binwindows-x86-64>startsonar
wrapper | --> Wrapper Started as Console
wrapper | Launching a JVM...
jvm 1 | Error: Could not create the Java Virtual Machine.
jvm 1 | Error: A fatal exception has occurred. Program will exit.
jvm 1 | Unrecognized option: --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED
wrapper | JVM exited while loading the application.
wrapper | JVM Restarts disabled. Shutting down.
wrapper | <-- Wrapper Stopped
SonarQube 9需要Java 11才能运行,更高版本需要Java 17。您可以在此处的文档化前提条件中查看支持的平台(选择适用于您的版本(:https://docs.sonarqube.org/9.6/requirements/prerequisites-and-overview/#supported-平台
SonarQube会尝试使用它在路径中找到的第一个java.exe,所以如果你的指向java 8或另一个不受支持的版本,那么你会看到类似的错误。要告诉SonarQube使用不同的已安装Java版本,请设置指向兼容java.exe
可执行文件的env-varSONAR_JAVA_PATH
例如,假设我有两个安装C:javaopenjdk-8
和C:javaopenjdk-17
,以及JAVA_HOME=C:javaopenjdk-8
。为了将SonarQube指向正确的Java版本,我将设置SONAR_JAVA_PATH=C:javaopenjdk-17binjava.exe
。这在安装和升级->安装服务器->调整Java安装。