Java 1.8.0_221 的“SonarQube 需要 Java 11+ 才能运行”

Soh*_*lid 18 sonarqube

我已经下载了 SonarQube(7.9.x LTS(2019 年 7 月))。

我在 64 位 Windows 机器上有 Java 版本“1.8.0_221”。环境变量JAVA_HOME设置为C:\Program Files\Java\jdk1.8.0_221,路径:C:\Program Files\Java\jdk1.8.0_221\bin & C:\Program Files\Java\jre1.8.0_221\bin .

运行 StartSonar.bat 时遇到以下错误

jvm 1    | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
jvm 1    |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
jvm 1    |
jvm 1    |
jvm 1    | WrapperSimpleApp: Encountered an error running main: java.lang.IllegalStateException: SonarQube requires Java 11+ to run
jvm 1    | java.lang.IllegalStateException: SonarQube requires Java 11+ to run
jvm 1    |      at org.sonar.application.App.checkJavaVersion(App.java:93)
jvm 1    |      at org.sonar.application.App.start(App.java:56)
jvm 1    |      at org.sonar.application.App.main(App.java:98)
jvm 1    |      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
jvm 1    |      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
jvm 1    |      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
jvm 1    |      at java.lang.reflect.Method.invoke(Method.java:498)
jvm 1    |      at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
jvm 1    |      at java.lang.Thread.run(Thread.java:748)
wrapper  | <-- Wrapper Stopped
Press any key to continue . . .
Run Code Online (Sandbox Code Playgroud)

我尝试实施我在各种博客中找到的解决方案,但仍然没有运气。我尝试通过在命令处更改 wrapper.conf 文件

包装器.java.command=java

或者

wrapper.java.command=C:\Program Files\Java\jdk1.8.0_221\bin\java

wrapper.java.command=C:\Program Files\Java\jdk1.8.0_221\bin\java

请为此问题提出解决方案。注意:我在没有管理员权限的情况下运行 StartSonar.bat 不知道它是否有任何影响。

Yan*_*You 55

安装 JDK 版本 11(从https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html下载)。如果下载链接不起作用,请谷歌“JDK 11 下载”。

并更改以下行的值<sonar>\conf\wrapper.conf

wrapper.java.command=C:\Program Files\Java\jdk-11.0.6\bin\java
Run Code Online (Sandbox Code Playgroud)

  • 对于那些安装了多个 Java 版本的人来说 - 这个答案就是解决方案。默认情况下,参数值为“java”,它引用系统上安装的最新 JDK 版本(在我的例子中为 JDK 13)。即使您安装了 JDK 11,这也会使错误再次出现 (3认同)
  • 顺便说一下,`\conf\wrapper.conf` 位于您的 SonarQube 文件夹中 (3认同)

Ami*_*raj 12

请按照以下步骤操作:

  1. 首先,您需要下载并安装 java 11,因为 SonarQube 需要 java 11 作为支持平台。

  2. 如果您还没有将默认java路径环境设置为jdk 11(如果您有另一个java版本,即系统中将jdk 1.8设置为默认java路径),那么您需要按照以下步骤操作,(否则您不需要这个配置,你可以运行)

    • 转到 SonarQube 文件夹路径并打开“conf”文件夹中的 “wrapper.conf” 文件。
    • 只需注释默认的java配置并设置新的java 11路径配置如下,

      
       #wrapper.java.command=java
       wrapper.java.command=C:\Program Files\Java\jdk-11.0.7\bin\java
      
      
      Run Code Online (Sandbox Code Playgroud)

      (注意:请从你的机器复制java 11路径,不要复制上面的示例路径)

现在你应该可以成功运行了。


小智 4

在“Release 7.9 LTS Upgrade Notes”公告SonarQube升级说明中明确

SonarQube 服务器现在需要 Java 11。

没有可能的解决方法,但这仅涉及 SonarQube 服务器部分,而不涉及分析您可以继续使用 Java 8 的项目的计算机(使用声纳扫描仪、maven、gradle...)。