如何解决“Exception in thread 'main' java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter”问题

4

我看到一些关于它的帖子,但并没有真正帮助我...

我有java JDK 10,运行在Windows 10 64位系统上。我正在尝试使用一个机器人。关于它的github链接在这里

这是我正在执行的脚本的日志

C:\Users\administrator\Downloads\vHackOSBot>java -jar vHackOSBot.jar
20:15:09 INFO [UpdateService] Creating UpdateService...
20:15:09 INFO [MiscService] Creating MiscService...
20:15:09 INFO [NetworkingService] Creating NetworkingService...
20:15:09 INFO [MainService] Creating MainService...
20:15:09 INFO [ServerService] Creating ServerService...
20:15:09 INFO [vHackOSBot-Config] Creating ConfigFile...
20:15:09 INFO [vHackOSBot-ConfigAdv] Creating ConfigFile...
20:15:09 WARN [io.sentry.DefaultSentryClientFactory] No 'stacktrace.app.packages' was configured, this option is highly recommended as it affects stacktrace grouping and display on Sentry. See documentation: https://docs.sentry.io/clients/java/config/#in-application-stack-frames
20:15:09 WARN [io.sentry.DefaultSentryClientFactory] No 'stacktrace.app.packages' was configured, this option is highly recommended as it affects stacktrace grouping and display on Sentry. See documentation: https://docs.sentry.io/clients/java/config/#in-application-stack-frames
20:15:10 INFO [vHackOSBot-ConfigAdv] Loading advanced config...
20:15:10 INFO [vHackOSBot-ConfigAdv] Loaded advanced config in 223ms.
20:15:10 INFO [vHackOSBot-ConfigAdv] Saving advanced config...
20:15:10 INFO [vHackOSBot-ConfigAdv] Saved advanced config in 29ms.
20:15:10 INFO [vHackOSBot-Config] Loading config...
20:15:10 INFO [vHackOSBot-Config] Loaded config in 47ms.
20:15:10 INFO [vHackOSBot-Config] Saving config...
20:15:10 INFO [vHackOSBot-Config] Saved config in 2ms.
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
        at net.olympiccode.vhackos.api.utils.Encryption.md5Hash(Encryption.java:15)
        at net.olympiccode.vhackos.api.requests.Route.compile(Route.java:59)
        at net.olympiccode.vhackos.api.entities.impl.vHackOSAPIImpl.verifyDetails(vHackOSAPIImpl.java:108)
        at net.olympiccode.vhackos.api.entities.impl.vHackOSAPIImpl.login(vHackOSAPIImpl.java:83)
        at net.olympiccode.vhackos.api.vHackOSAPIBuilder.buildAsync(vHackOSAPIBuilder.java:92)
        at net.olympiccode.vhackos.api.vHackOSAPIBuilder.buildBlocking(vHackOSAPIBuilder.java:104)
        at net.olympiccode.vhackos.bot.core.vHackOSBot.run(vHackOSBot.java:107)
        at net.olympiccode.vhackos.bot.core.vHackOSBot.main(vHackOSBot.java:51)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
        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)
        ... 8 more
20:15:10 INFO [vHackOSBot] Shutting down...
20:15:10 INFO [vHackOSBot-Config] Saving config...
20:15:10 INFO [vHackOSBot-Config] Saved config in 2ms.
20:15:10 INFO [vHackOSBot-ConfigAdv] Saving advanced config...
20:15:10 INFO [vHackOSBot-ConfigAdv] Saved advanced config in 1ms.

看起来 javax/xml/bind/DatatypeConverter 的实现不在你的类路径上。 - Scary Wombat
它对我有效。 - Ballo Ibrahima
2个回答

10

在JDK 9中,java.xml.bind已被弃用并从标准类路径中移除。它仍然存在,因此您可以尝试使用--add-modules来将模块添加到类路径中。

但对于我来说,最简单的解决方案是添加依赖项(gradle/maven):

gradle:

compile 'javax.xml.bind:jaxb-api:2.3.0'

maven:

<dependency>
  <groupId>javax.xml.bind</groupId>
  <artifactId>jaxb-api</artifactId>
  <version>2.3.0</version>
</dependency>

链接到废弃摘要:https://docs.oracle.com/javase/9/docs/api/java.xml.bind-summary.html


5
我发现为什么它不起作用了。我需要降级到Java JDE和JDK 8版本。

1
虽然这是一个可能的解决方案,但它将绑定您到该Java版本。我强烈建议遵循@sagat的方法。 - jrsall92

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接