【问题标题】:Sonarqube setup throws "Could not create the Java Virtual Machine" error in MAC terminalSonarqube 设置在 MAC 终端中引发“无法创建 Java 虚拟机”错误
【发布时间】:2021-07-16 07:52:19
【问题描述】:

您好,我正在关注以下 youtube 教程 Youtube tutorial

在这一步Mike:macosx-universal-64 mike$ sh sonar.sh console 出现错误

    Running SonarQube...
wrapper  | --> Wrapper Started as Console
wrapper  | Launching a JVM...
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    | 2021.04.22 11:02:40 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /Users/mike/Downloads/sonarqube/temp
jvm 1    | 2021.04.22 11:02:40 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on [HTTP: 127.0.0.1:9001, TCP: 127.0.0.1:50435]
jvm 1    | 2021.04.22 11:02:40 INFO  app[][o.s.a.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/Users/mike/Downloads/sonarqube/elasticsearch]: /Users/mike/Downloads/sonarqube/elasticsearch/bin/elasticsearch
jvm 1    | 2021.04.22 11:02:40 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
jvm 1    | warning: no-jdk distributions that do not bundle a JDK are deprecated and will be removed in a future release
jvm 1    | Unrecognized VM option 'UseConcMarkSweepGC'
jvm 1    | Error: Could not create the Java Virtual Machine.
jvm 1    | Error: A fatal exception has occurred. Program will exit.
jvm 1    | 2021.04.22 11:02:40 WARN  app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 1
jvm 1    | 2021.04.22 11:02:40 INFO  app[][o.s.a.SchedulerImpl] Process[es] is stopped
jvm 1    | 2021.04.22 11:02:40 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
jvm 1    | 2021.04.22 11:02:41 ERROR app[][o.s.a.p.EsManagedProcess] Failed to check status
jvm 1    | java.lang.RuntimeException: thread waiting for the response was interrupted
jvm 1    |  at org.elasticsearch.client.RestClient.extractAndWrapCause(RestClient.java:848)
jvm 1    |  at org.elasticsearch.client.RestClient.performRequest(RestClient.java:283)
jvm 1    |  at org.elasticsearch.client.RestClient.performRequest(RestClient.java:270)
jvm 1    |  at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1621)
jvm 1    |  at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1591)
jvm 1    |  at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1561)
jvm 1    |  at org.elasticsearch.client.ClusterClient.health(ClusterClient.java:119)
jvm 1    |  at org.sonar.application.es.EsConnectorImpl.getClusterHealthStatus(EsConnectorImpl.java:56)
jvm 1    |  at org.sonar.application.process.EsManagedProcess.checkStatus(EsManagedProcess.java:89)
jvm 1    |  at org.sonar.application.process.EsManagedProcess.checkOperational(EsManagedProcess.java:74)
jvm 1    |  at org.sonar.application.process.EsManagedProcess.isOperational(EsManagedProcess.java:59)
jvm 1    |  at org.sonar.application.process.ManagedProcessHandler.refreshState(ManagedProcessHandler.java:220)
jvm 1    |  at org.sonar.application.process.ManagedProcessHandler$EventWatcher.run(ManagedProcessHandler.java:285)
jvm 1    | Caused by: java.lang.InterruptedException: null
jvm 1    |  at java.base/java.lang.Object.wait(Native Method)
jvm 1    |  at java.base/java.lang.Object.wait(Object.java:320)
jvm 1    |  at org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:82)
jvm 1    |  at org.apache.http.impl.nio.client.FutureWrapper.get(FutureWrapper.java:70)
jvm 1    |  at org.elasticsearch.client.RestClient.performRequest(RestClient.java:279)
jvm 1    |  ... 11 common frames omitted
wrapper  | <-- Wrapper Stopped

我尝试使用此命令/usr/libexec/java_home -V 并得到以下结果

Matching Java Virtual Machines (1):
    16, x86_64: "Java SE 16"    /Library/Java/JavaVirtualMachines/jdk-16.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk-16.jdk/Contents/Home

我对此并不陌生,并试图了解究竟是什么问题以及如何解决这个问题。

请帮帮我

【问题讨论】:

  • 您必须检查日志文件夹中的日志。

标签: java ios sonarqube sonarscanner


【解决方案1】:

你需要降低你的 Java。 Sonarqube 服务器仅支持Java 11 并使用UseConcMarkSweepGC 选项,该选项已在更高的Java 版本中删除。

SonarQube 服务器需要版本 11。官方不支持 Java 11 之后的版本。

【讨论】:

  • 是的,你是绝对正确的,我在卸载最新版本后安装 JDK 11 TO 16 后也遇到了同样的问题,但我将 11 切换到 16 的原因是错误“java .lang.UnsupportedClassVersionError: org/sonar/batch/bootstrapper/EnvironmentInformation 已由更新版本的 Java Runtime(类文件版本 55.0)编译,此版本的 Java Runtime 仅识别最高 52.0 的类文件版本跨度>
  • 版本 55.0 是 Java 11,版本 52.0 是 Java 8。我会仔细检查您正在运行的实际运行时版本,SonarQube 代码都没有使用高于 11 的 Java。
猜你喜欢
  • 2014-10-25
  • 2013-10-14
  • 2017-05-30
  • 1970-01-01
  • 2018-07-17
  • 2019-08-16
  • 2013-12-07
  • 2020-05-20
相关资源
最近更新 更多