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

时间:2017-03-20 15:28:12

标签: java-9 java-module

我有一个服务器工具包,我试图在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的新手,并且不知道如何将整个服务器工具包重新编译成模块并添加对javax.xml.bind模块的依赖。有没有办法解决这个错误,并不要求我将服务器工具包重新编译成模块?

1 个答案:

答案 0 :(得分:8)

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

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