Reputation: 321
I have downloaded SonarQube (7.9.x LTS (July 2019)).
I have java version "1.8.0_221" in 64bit windows machine. Environment variable JAVA_HOME is set to C:\Program Files\Java\jdk1.8.0_221, path: C:\Program Files\Java\jdk1.8.0_221\bin & C:\Program Files\Java\jre1.8.0_221\bin.
I encountered following error while running 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 . . .
I have tried to implement solutions that I found in various blogs,but still no luck. I tried by making changes in wrapper.conf file at command
wrapper.java.command=java
or
wrapper.java.command=C:\Program Files\Java\jdk1.8.0_221\bin\java
as well as
wrapper.java.command=C:\Program Files\Java\jdk1.8.0_221\bin\java
Please suggest solution for this issue. Note: I am running StartSonar.bat without admin permission don't know if it has any impact.
Upvotes: 21
Views: 58346
Reputation: 1388
In sonarqube-9.8.0, there is a file called find_java.bat
C:...\sonar-qube-980\bin\windows-x86-64\lib\find_java.bat
the file states:
"rem if the environmental variable SONAR_JAVA_PATH is set, override the default java.exe"
this means that if you create a new environment variable SONAR_JAVA_PATH and set the value to point to your JDK11, SonarQube will pick up this value.
Variable: SONAR_JAVA_PATH
Value: C:...\jdk-11.0.18\bin\java.exe
Once this is setup, start your SonarQube instance via StartSonar.bat
"C:...\sonar-qube-980\bin\windows-x86-64\StartSonar.bat"
Upvotes: 2
Reputation: 21
I encountered a similar situation. I had JDK 11 installed and SQ was fine with it. It was the only Java on my machine. Then, there was an organization wide push of Java 8 which reset the path system environment variable to Java 8, thereby disrupting the ability to run SQ (even though Java 11 was still present.)
Removing Java 8 was not a solution since doing so would result in the absence of Java 8 being detected and provoke another automated push of Java 8 and the corresponding reset of the path system environment variable. The scanner looks no deeper than the presence of Java 8. So, as long as it is there, it does not touch the path system environment variable.
Resetting the path system environment variable to Java 11 and setting JAVA_HOME was solution. SQ saw Java 11, so it could run and the scanner saw Java 8, so it took no further action.
Upvotes: 0
Reputation: 2668
Install JDK version 11 (download from https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html). If the download link not working, google "JDK 11 download".
and change the value for the line below in <sonar>\conf\wrapper.conf
:
wrapper.java.command=C:\Program Files\Java\jdk-11.0.6\bin\java
Upvotes: 62
Reputation: 1064
Please follow the below steps:
First you need to download and install java 11 as SonarQube requires java 11 as the support platform.
If you have not set the default java path environment to jdk 11 (if you have another java version, i.e. jdk 1.8 set as default java path in your system), then you need to follow the below step, (Otherwise you don't need this configuration and you can just run)
Just comment the default java configuration and set new java 11 path configuration as below,
#wrapper.java.command=java
wrapper.java.command=C:\Program Files\Java\jdk-11.0.7\bin\java
(note: please copy the java 11 path from your machine , don't copy the above sample path)
Now you should be able to run successfully.
Upvotes: 12
Reputation: 1011
There are useful links given in other comments to install JAVA JDK 11 in above link. However, I would recommend to install latest version from following link (because you have just downloaded latest sonarqube) for better compatibly.
SDK download link: https://www.oracle.com/java/technologies/javase-downloads.html
Upvotes: 0
Reputation: 819
It's explicit in the "Release 7.9 LTS Upgrade Notes" announcement SonarQube upgrade notes
The SonarQube server now requires Java 11.
There's no possible workaround, but this concern only the SonarQube server part, not the machines that analyze your projects on which you may continue to use Java 8 (using sonar-scanner, maven, gradle, ...).
Upvotes: 5