【问题标题】:How do I include a java 9 module at runtime?如何在运行时包含 java 9 模块?
【发布时间】:2017-08-11 23:13:13
【问题描述】:

我有一个服务器套件,我正在尝试在 java9 JDK 上进行测试(找到 here,我使用的是 64 位 Linux 版本),但是在启动后不久我遇到了以下错误:

java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:533)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:186)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:476)

服务器工具包在使用 java8 时启动没有问题。不知何故,我需要告诉运行时系统包含 javax.xml.bind 模块,但是我是 java9 的新手,除了将整个服务器工具包重新编译到一个模块中并添加对 @987654324 的依赖项之外,我不知道如何做到这一点@ 模块。有没有不需要我将服务器套件重新编译成模块的方法来解决这个错误?

【问题讨论】:

  • 你可以尝试使用--add-modules java.xml.bind 运行吗?
  • @Nicolai 谢谢,这解决了问题 - 如果你打开一个答案,我会接受它

标签: java-9 java-module


【解决方案1】:

Java EE 模块随 JDK 一起提供,但 not resolved by defaultjava.xml.bind 就是其中之一。在这种情况下,它们需要明确包含在 --add-modules 中。

在您的情况下,使用 --add-modules java.xml.bind 启动。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    相关资源
    最近更新 更多