相关疑难解决方法(0)

如何在Java 9中解决java.lang.NoClassDefFoundError:javax/xml/bind/JAXBException

我有一些代码使用JAXB API类,它们是作为Java 6/7/8中JDK的一部分提供的.当我使用Java 9运行相同的代码时,在运行时我得到错误,指示无法找到JAXB类.

自Java 6以来,JAXB类已作为JDK的一部分提供,为什么Java 9不再能够找到这些类?

java jaxb java-9 java-10 java-11

718
推荐指数
27
解决办法
46万
查看次数

无法使用Java 9运行sdkmanager --list(Android SDK)

我下载并安装了:

  • JDK(jdk-9.0.1_osx-x64_bin.dmg从Oracle)在这里
  • Android的SDK( sdk-tools-darwin-3859397.zip)从谷歌在这里.

配置PATH变量后,我尝试运行sdkmanager,它取代了android管理SDK组件的命令.但是,它失败了,如下所示:

$ sdkmanager --list
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
    at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:117)
    at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:93)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
    ... 5 more
Run Code Online (Sandbox Code Playgroud)

这是Java版本:

$ java -version
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何修复它而不回到Java 8?

相关问题

  • 无法安装android-sdk
    • 这篇文章提出了类似的问题.但是,帖子已经关闭,唯一的答案就是回到Java 8.

java android android-sdk-tools android-sdk-manager java-9

79
推荐指数
12
解决办法
6万
查看次数

使Android sdkmanager与Java 11一起运行

我在sdkmanager使用Java 11 运行Android时遇到问题(不是Studio,只有SDK工具)。我不想安装JDK 8或类似的东西。有没有办法sdkmanager用JDK 11 修复这个问题?

我已经回答这个问题,但它不提供针对Java 11的命令行修复。还有其他解决方法吗?

android java-11

11
推荐指数
4
解决办法
4571
查看次数