2017-10-20 130 views
9

迁移Maven项目的Java 8的Java 9项目没有任何Eclipse OxyGen 1a构建工具。Java的9:模块java.xml.bind是无法访问在Eclipse

所以我module-info.java看起来是这样的:

enter image description here

但java.xml.bind是无法访问的,虽然它在我的模块路径:

enter image description here

那么这里有什么问题?

+2

看到https://stackoverflow.com/questions/43574426/how-to-resolve-java-lang-noclassdeffounderror-javax-xml-bind-jaxbexception-in-j/43574427?noredirect=1#comment80650142_43574427 –

+2

该模块[已弃用](https://docs.oracle.com/javase/9​​/docs/api/java.xml.bind-summary.html)。您需要将JAXB作为外部库。 – VGR

+0

@VGR但它在JDK9中可用,所以它必须在Eclipse中可用 – ZhekaKozlov

回答

11

当编译一个无名模块,java.xml.bind是不是默认访问,但在一个模块化的项目失败(在这个问题)来解决参考模块java.xml.bind a bug (见下面编辑)

要解决这一点,直到错误是固定的,你可以明确地包括Is modular模块java.xml.bind通过双击(见问题截图),并显示在对话框中,将所需的模块从Available modulesExplicitly included modules

Module properties dialog

编辑 Bug 526054 已经在Eclipse Oxygen.2得到解决,因此,模块化的项目应该不再NE编辑上述步骤(尽管如此,它仍然与未命名模块中的代码相关)

+0

这帮了我很多,谢谢! – Ulathar