如何在运行时包含java 9模块?

Zim*_*oot 5 java-9 java-module

我有一个服务器工具包,我试图在java9 JDK上测试(在这里找到,我使用的是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)
Run Code Online (Sandbox Code Playgroud)

使用java8时,服务器套件启动时没有问题.不知怎的,我需要告诉运行时系统包含javax.xml.bind模块,但是我是java9的新手,并且不知道如何将整个服务器工具包重新编译成模块并在javax.xml.bind模块上添加依赖项.有没有办法解决这个错误,不需要我重新编译服务器工具包到模块?

Nic*_*lai 8

Java EE模块随JDK一起提供,但默认情况下未解析,java.xml.bind就是其中之一.在这种情况下,他们需要明确包括在内--add-modules.

在你的情况下,启动--add-modules java.xml.bind.