Java 9:模块Java.xml.bind在Eclipse中不可访问

Java 9:模块Java.xml.bind在Eclipse中不可访问,java,eclipse,java-9,java-module,Java,Eclipse,Java 9,Java Module,我将Java8中的maven项目迁移到Java9项目,而不使用Eclipse1a中的任何构建工具 因此,我的模块info.java如下所示: 但是java.xml.bind不可访问,尽管它位于我的模块路径中: 那么这里有什么问题吗?编译未命名模块时,java.xml.bind默认情况下不可访问,但在模块化项目中(如本问题中),无法解析对模块java.xml.bindwas的引用(请参见下面的编辑) 要解决此问题直到修复错误,可以通过双击is modular(请参见问题中的屏幕截图)显式包含模

我将Java8中的maven项目迁移到Java9项目,而不使用
Eclipse1a
中的任何构建工具

因此,我的模块info.java如下所示:

但是java.xml.bind不可访问,尽管它位于我的模块路径中:


那么这里有什么问题吗?

编译未命名模块时,
java.xml.bind
默认情况下不可访问,但在模块化项目中(如本问题中),无法解析对模块
java.xml.bind
was的引用(请参见下面的编辑)

要解决此问题直到修复错误,可以通过双击
is modular
(请参见问题中的屏幕截图)显式包含
模块
java.xml.bind
,并在显示的对话框中,将所需模块从
可用模块
移动到
显式包含的模块

编辑:已在Eclipse Oxygen.2中解决,因此模块化项目不再需要上述步骤(尽管这些步骤仍然与未命名模块中的代码相关)


编辑2:在Eclipse2019-06中,上面这样的任务的UI已经完成。在编译未命名模块时,
java.xml.bind
在默认情况下是不可访问的,但在模块化项目中(如本问题所述),无法解析对模块
java.xml.bind
was的引用(请参见下面的编辑)

要解决此问题直到修复错误,可以通过双击
is modular
(请参见问题中的屏幕截图)显式包含
模块
java.xml.bind
,并在显示的对话框中,将所需模块从
可用模块
移动到
显式包含的模块

编辑:已在Eclipse Oxygen.2中解决,因此模块化项目不再需要上述步骤(尽管这些步骤仍然与未命名模块中的代码相关)


编辑2:在Eclipse2019-06中,上面这样的任务的UI已经完成。最新的文档可在中找到。

请参阅模块。您需要将JAXB作为一个外部库使用。它存在于JDK 9中,但不在默认模块路径中。
需要java.xml.bind
应该可以工作。正如其他人所注意到的,JavaSE中不推荐删除该模块,但该模块具有双重寿命,因此如果从JDK中丢弃,它将继续存在。从版本2.3.0开始,独立版本是一个显式模块,您可以在模块路径上部署它(或者升级模块路径以覆盖JDK中的版本)。对于您的问题,如果它在Eclipse之外工作,那么它暗示了Eclipse环境中的某些东西。有关这些API的迁移,请参见模块。您需要将JAXB作为一个外部库使用。它存在于JDK 9中,但不在默认模块路径中。
需要java.xml.bind
应该可以工作。正如其他人所注意到的,JavaSE中不推荐删除该模块,但该模块具有双重寿命,因此如果从JDK中丢弃,它将继续存在。从版本2.3.0开始,独立版本是一个显式模块,您可以在模块路径上部署它(或者升级模块路径以覆盖JDK中的版本)。对于您的问题,如果它在Eclipse之外工作,那么它暗示了Eclipse环境中的某些东西。对于这些API的迁移,我看到了一个否决票,而答案尚未被接受,让我问一下:您认为缺少了什么?很抱歉,响应太晚。其他项目需要我的关注。因此,对于这个问题:结果是一些eclipse问题与jdk9或更高版本(正如您已经提到的)结合在一起。尤其是在使用包含不同JDK版本的多版本JAR时。这应该在eclipse中修复了。将在未来几天内进行新的尝试。不知道为什么我不能将你的答案标记为正确答案……我看到了反对票,但答案没有被接受,让我问一下:你认为遗漏了什么?很抱歉反应太晚。其他项目需要我的关注。因此,对于这个问题:结果是一些eclipse问题与jdk9或更高版本(正如您已经提到的)结合在一起。尤其是在使用包含不同JDK版本的多版本JAR时。这应该在eclipse中修复了。将在未来几天内进行新的尝试。不知道为什么我不能把你的答案标记为正确答案。。。