修复sdkmanager java.lang.NoClassDefFoundError批处理文件

时间:2019-03-30 23:31:58

标签: java android batch-file

尝试运行sdkmanager

时出现错误

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
        at com.android.repository.api.SchemaModule$SchemaModuleVersion.(SchemaModule.java:156)
        at com.android.repository.api.SchemaModule.(SchemaModule.java:75)
        at com.android.sdklib.repository.AndroidSdkHandler.(AndroidSdkHandler.java:81)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        ... 5 more

我已尝试更改为jdk 7,8和10但无法正常工作,因此我该如何解决这个问题

3 个答案:

答案 0 :(得分:2)

我遇到了问题,因为Java的默认安装是v11

java -version
应该是:openjdk version "1.8.0_252"

修复:
sudo apt-get install openjdk-8-jdk
不用担心不会覆盖
然后通过
切换到正确的版本 sudo update-alternatives --config java

确认来自java -version的正确输出

比再次运行sdkmanager

答案 1 :(得分:1)

我必须执行以下操作才能在Windows 10上修复此错误:

  1. 安装JDK8。我安装了JDK 12,但似乎不适用于该版本。
  2. 将Java添加到我的环境变量Path

要将Java添加到环境变量Path中,请执行以下操作:

Go to Computer -> Advanced system settings -> Environment variables -> PATH -> and add the path to your local java bin directory. It looks like this: C:\Program Files\Java\jdk-versionyouhave\bin

答案 2 :(得分:0)

您可以尝试此解决方案

首先使用任何文本编辑器打开sdkmanager.bat

然后找到此行

  %JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %SDKMANAGER_OPTS%

并将其更改为此行

  %JAVA_EXE%" %DEFAULT_JVM_OPTS% --add-modules java.xml.bind %JAVA_OPTS% %SDKMANAGER_OPTS%

我希望这可以解决您的问题。