SonarQube: Ошибка: не удалось создать виртуальную машину Java

#android-studio #java #jvm #sonarqube

#android-studio #java #jvm #sonarqube

Вопрос:

Я новичок в SonarQube, когда я запускаю «C:sonarqube-8.5.1.38104binwindows-x86-64StartSonar.bat «, я получаю сообщение об ошибке ниже,

—> Оболочка запущена как консоль

 Launching a JVM...
Picked up _JAVA_OPTIONS: -Xmx1024M
Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
  Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.

2020.11.16 13:40:45 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory C:sonarqube-8.5.1.38104temp
2020.11.16 13:40:45 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
2020.11.16 13:40:45 INFO  app[][o.s.a.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [C:sonarqube-8.5.1.38104elasticsearch]: C:Program FilesJavajdk-15.0.1binjava -XX: UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX: UseCMSInitiatingOccupancyOnly -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX: AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.io.tmpdir=C:sonarqube-8.5.1.38104temp -XX:ErrorFile=../logs/es_hs_err_pid%p.log -Xmx512m -Xms512m -XX: HeapDumpOnOutOfMemoryError -Delasticsearch -Des.path.home=C:sonarqube-8.5.1.38104elasticsearch -Des.path.conf=C:sonarqube-8.5.1.38104tempconfes -cp lib/* org.elasticsearch.bootstrap.Elasticsearch
2020.11.16 13:40:45 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
Picked up _JAVA_OPTIONS: -Xmx1024M
Unrecognized VM option 'UseConcMarkSweepGC'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
2020.11.16 13:40:46 WARN  app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 1
2020.11.16 13:40:46 INFO  app[][o.s.a.SchedulerImpl] Process[es] is stopped
2020.11.16 13:40:46 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
FATAL StatusLogger Interrupted before Log4j Providers could be loaded.
 java.lang.InterruptedException
    at java.base/java.util.concurrent.locks.ReentrantLock$Sync.lockInterruptibly(ReentrantLock.java:159)
    at java.base/java.util.concurrent.locks.ReentrantLock.lockInterruptibly(ReentrantLock.java:372)
    at org.apache.logging.log4j.util.ProviderUtil.lazyInit(ProviderUtil.java:121)
    at org.apache.logging.log4j.util.ProviderUtil.hasProviders(ProviderUtil.java:108)
    at org.apache.logging.log4j.LogManager.<clinit>(LogManager.java:89)
    at org.elasticsearch.common.unit.ByteSizeValue.<clinit>(ByteSizeValue.java:39)
    at org.elasticsearch.common.network.NetworkService.<clinit>(NetworkService.java:57)
    at org.elasticsearch.transport.TransportSettings.<clinit>(TransportSettings.java:74)
    at org.elasticsearch.client.transport.TransportClient.newPluginService(TransportClient.java:105)
    at org.elasticsearch.client.transport.TransportClient.buildTemplate(TransportClient.java:135)
    at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:277)
    at org.sonar.application.es.EsConnectorImpl$MinimalTransportClient.<init>(EsConnectorImpl.java:103)
    at org.sonar.application.es.EsConnectorImpl.buildTransportClient(EsConnectorImpl.java:89)
    at org.sonar.application.es.EsConnectorImpl.getTransportClient(EsConnectorImpl.java:74)
    at org.sonar.application.es.EsConnectorImpl.getClusterHealthStatus(EsConnectorImpl.java:61)
    at org.sonar.application.process.EsManagedProcess.checkStatus(EsManagedProcess.java:88)
    at org.sonar.application.process.EsManagedProcess.checkOperational(EsManagedProcess.java:73)
    at org.sonar.application.process.EsManagedProcess.isOperational(EsManagedProcess.java:58)
    at org.sonar.application.process.ManagedProcessHandler.refreshState(ManagedProcessHandler.java:220)
    at org.sonar.application.process.ManagedProcessHandler$EventWatcher.run(ManagedProcessHandler.java:285)
ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
  

<— Обертка остановлена

Пожалуйста, помогите мне здесь… Заранее спасибо.

Комментарии:

1. Какую версию Java вы используете?

Ответ №1:

Ваша проблема, скорее всего, возникает из-за того, что вы пытаетесь запустить SonarQube с неподдерживаемой версией Java.

Из журнала ошибок я предполагаю, что вы пытаетесь запустить его, используя Java 14 или Java 15 на основе этих строк:

 Picked up _JAVA_OPTIONS: -Xmx1024M
Unrecognized VM option 'UseConcMarkSweepGC'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
  

Сборщик CMS устарел в Java 9 и полностью удален в Java 14:

https://openjdk.java.net/jeps/363

Это означает, что пакетный скрипт, который пытается запустить Sonar, передает некоторые аргументы JVM, которые больше не действительны.

Основываясь на их документации, поддерживающей только версии Java, 8 и 11

https://docs.sonarqube.org/latest/requirements/requirements/

и версии выше не поддерживаются:

Для сканеров SonarQube требуется версия 8 или 11 JVM, а для сервера SonarQube требуется версия 11. Версии, выходящие за рамки Java 11, официально не поддерживаются.

Я предлагаю вам попытаться запустить его, используя правильную версию Java. Также, пожалуйста, проверьте соответствующую документацию заранее, чтобы избежать подобных проблем.

Комментарии:

1. да, вы абсолютно правы, я также столкнулся с той же проблемой после того, как после установки JDK с 11 по 16 после удаления последняя версия работает без сбоев, но причиной, по которой я переключил 11 на 16, является ошибка «java.lang. Ошибка UnsupportedClassVersionError: org/ sonar/batch/bootstrapper /EnvironmentInformation была скомпилирована более поздней версией среды выполнения Java (версия файла класса 55.0), эта версия среды выполнения Java распознает только версии файлов классов до 52.0 »