7

我安装了版本:Oxygen.1a Release (4.7.1a) Build id: 20171005-1200支持 Java 9。

在 eclipse.ini 上建议配置

-vm
C:\Program Files\Java\jdk-9\bin\javaw.exe
--add-modules=ALL-SYSTEM

我已经开发了 java 9(java 9 模块化)代码项目来测试依赖注入作为来自 Eclipse 的纯 Java 项目,但是当我集成 Maven 从 Eclipse 运行我时,我系统地得到以下错误

启动层初始化时出错java.lang.module.FindException: Module com.my.module.hello.test not found

唯一的解决方案是添加 VM 参数

--module-path target/classes;../my-module-api/target/classes;../my-module-it/target/classes --module com.my.module.hello.test/com.my.module.hello.Reflection

在此处输入图像描述

实际上,如果将我在加载期间可以看到的详细参数添加到 Vm 参数

... [0.694s][info][class,load] java.lang.NamedPackage 源:jrt:/java.base [0.697s][info][class,load] com.my.module.hello.MyHello 源: file:/C:/Users/212442540/workspace-training/my-module-prj/my-module/target/classes/ [0.698s][info][class,load] java.lang.module.ModuleDescriptor$$ Lambda$24/2114889273 来源:java.lang.module.ModuleDescriptor ...

当我删除“--module-path”参数时,这条线消失了。

注意:Eclipse 在编译或编辑过程中能够正常工作。看到完成等等..

在此处输入图像描述

我也在我的项目中添加了 modpath 依赖项

强制依赖项目配置

我在项目配置中手动添加了依赖项 在此处输入图像描述

因此,Eclipse 似乎能够编译 java 9 模块,但如果与 maven 集成,则无法运行模块。

强制依赖 Configratin Run 我还手动添加了依赖关系 图 1在此处输入图像描述

但日食继续删除它们。

前:

手动

图 2

运行 eclipse 后恢复:

保存后 图 3

如果与 maven 集成,eclipse 似乎会系统地重置配置。

4

1 回答 1

6

我可以重现您的问题,它看起来像M2Eclipse的错误。

请向 Eclipse 报告错误 526838 -与 maven 集成时,Eclipse 错误的模块依赖于运行配置

作为解决方法,使用外部工具配置而不是 Java 应用程序运行配置:

  1. 运行 > 外部工具 > 外部工具配置...
  2. 选择程序并单击左上角的新启动配置图标
  3. 输入以下值:
     
    位置: C:\windows\system32\cmd.exe
     
    工作目录:${workspace_loc:/my-module}
     
    参数:

    /C java
    -p target/classes;../my-module-api/target/classes;../my-module-it/target/classes
    -m com.my.module.hello.test/com.my.module.hello.Reflection

  4. 单击运行

于 2017-11-04T13:15:46.613 回答