We Are Going To Discuss About Failed to run sdkmanager –list with Java 9. So lets Start this Java Article.
Failed to run sdkmanager –list with Java 9
- Failed to run sdkmanager –list with Java 9
We are going to apply a fix in
sdkmanager
. It is a shell script. It is located at$android_sdk/tools/bin
, where$android_sdk
is where you unzipped the Android SDK.
Opensdkmanager
in your favorite editor.
Locate the line which sets theDEFAULT_JVM_OPTS
variable. In my copy, it is at line 31: - Failed to run sdkmanager –list with Java 9
We are going to apply a fix in
sdkmanager
. It is a shell script. It is located at$android_sdk/tools/bin
, where$android_sdk
is where you unzipped the Android SDK.
Opensdkmanager
in your favorite editor.
Locate the line which sets theDEFAULT_JVM_OPTS
variable. In my copy, it is at line 31:
Solution 1
With the help of this answer, I successfully solved the problem.
We are going to apply a fix in sdkmanager
. It is a shell script. It is located at $android_sdk/tools/bin
, where $android_sdk
is where you unzipped the Android SDK.
- Open
sdkmanager
in your favorite editor. -
Locate the line which sets the
DEFAULT_JVM_OPTS
variable. In my copy, it is at line 31:DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME"'
-
Append the following options to the variable:
-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee
. Please pay attention to the quotes. In my copy, the line becomes:DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
- Save the file and quit the editor.
- Run the command again.
Here is the result:
$ sdkmanager --list
Installed packages:
Path | Version | Description | Location
------- | ------- | ------- | -------
tools | 26.0.1 | Android SDK Tools 26.0.1 | tools/
Available Packages:
Path | Version | Description
------- | ------- | -------
add-ons;addon-g..._apis-google-15 | 3 | Google APIs
add-ons;addon-g..._apis-google-16 | 4 | Google APIs
add-ons;addon-g..._apis-google-17 | 4 | Google APIs
add-ons;addon-g..._apis-google-18 | 4 | Google APIs
add-ons;addon-g..._apis-google-19 | 20 | Google APIs
add-ons;addon-g..._apis-google-21 | 1 | Google APIs
add-ons;addon-g..._apis-google-22 | 1 | Google APIs
add-ons;addon-g..._apis-google-23 | 1 | Google APIs
add-ons;addon-g..._apis-google-24 | 1 | Google APIs
...
Hola! It works!
— Edit: 2017-11-07 —
Please note that you may need to apply the fix above again after running sdkmanager --update
, since the sdkmanager
shell script may be overridden if the tools
package is updated.
Related Answers
- https://stackoverflow.com/a/43574427/142239
- @andy-guibert pointed out the necessary options to make this work. He also briefly what those mysterious options mean.
Original Author Siu Ching Pong -Asuka Kenji Of This Content
Solution 2
You can set sdkmanager options with SDKMANAGER_OPTS.
Example:
export SDKMANAGER_OPTS="--add-modules java.se.ee"
sdkmanager --list
Original Author bempa Of This Content
Solution 3
The accepted answer is outdated as of February 2019. Here’s an answer that will work until sdkmanager
migrates to a newer version of Java. But by then, you won’t have this problem anymore.
OpenJDK 10 was superseeded by OpenJDK 11, which doesn’t implement
java.se.ee
at all. This means that the hack of adding--add-modules java.se.ee
doesn’t do anything anymore. It also means that OpenJDK 10 will be automatically removed from your system and replaced with OpenJDK 11 the next time you update, if your updates are configured properly.Modify
sdkmanager
to use Java 8 by settingJAVA_HOME
insidesdkmanager
to a Java 8 installation. It’s, by default, at~/Android/Sdk/tools/bin/sdkmanager
.# Add default JVM options here. You can also use JAVA_OPTS and SDKMANAGER_OPTS to pass JVM options $ JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions'
@rem Add default JVM options here. You can also use JAVA_OPTS and SDKMANAGER_OPTS to pass JVM options to this script. set JAVA_HOME="C:\ProgramData\scoop\apps\android-studio\current\jre" set DEFAULT_JVM_OPTS="-Dcom.android.sdklib.toolsdir=%~dp0\.."
This way, you can keep using a sane and maintained version of Java on your system while simultaneously using
sdkmanager
.# Java export JAVA_HOME=/usr/lib/jvm/default-java
And now I’ve got some pipelines to repair.
Original Author Nato Boram Of This Content
Solution 4
When having java 11 in the system, the solutions provided are not valid.
This -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee or
–add-modules java.xml.bind do not work with Java 11 on Mac OS.
For that reason you have to downgrade java version to version 8 from here: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
List Java versions installed
/usr/libexec/java_home -V
Java 11
export JAVA_HOME=$(/usr/libexec/java_home -v 11)
Java 1.8
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
Then go to
cd ~/Library/Android/sdk/tools/bin
and
./sdkmanager --licenses
Original Author thodwris Of This Content
Conclusion
So This is all About This Tutorial. Hope This Tutorial Helped You. Thank You.