在 Eclipse 中生成 JavaDocs 时出现“未找到模块”消息

Posted

技术标签:

【中文标题】在 Eclipse 中生成 JavaDocs 时出现“未找到模块”消息【英文标题】:"Module not found" message when generating JavaDocs in Eclipse 【发布时间】:2020-04-08 06:22:02 【问题描述】:

我正在尝试在我的应用程序中生成 JavaDocs,但是,当我尝试它时,我收到以下消息:

...\application\src\module-info.java:5: error: module not found: javafx.base
    requires javafx.base;
                   ^
...\application\src\module-info.java:6: error: module not found: javafx.fxml
    requires javafx.fxml;
                   ^
...\application\src\module-info.java:7: error: module not found: javafx.graphics
    requires transitive javafx.graphics;
                              ^
...\application\src\module-info.java:8: error: module not found: javafx.media
    requires javafx.media;
                   ^
...\application\src\module-info.java:9: error: module not found: javafx.controls
    requires javafx.controls;
                   ^
...\application\src\module-info.java:10: error: module not found: org.junit.jupiter.api
    requires org.junit.jupiter.api;

而且我不确定这意味着什么。我试过用谷歌搜索,但没有发现任何有用的东西,发现了一个非常相似的问题,但从未得到回答。可能是什么问题?

我的类文件路径如下:...\application\src\game\game.main

我的modulepath文件路径如下:...\application\src\module-info.java

我的应用程序运行良好,所以我不确定问题出在哪里。

这就是我的 module-path.java 的样子:

module froggerGame 

    exports frogger.helper;
    exports frogger.builders;
    exports tests;
    exports frogger.controllers;
    exports frogger.world;
    exports frogger.actors;
    exports frogger.game;
    requires javafx.base;
    requires javafx.controls;
    requires javafx.fxml;
    requires javafx.graphics;
    requires javafx.media;
    requires org.junit.jupiter.api;

编辑:我设法解决了这个问题,问题是我没有正确设置我的 Java 可执行变量(JAVA_HOME、PATH_TO_FX),然后在 JavaDocs 的 VM 参数中,我必须包含 @987654324 @bit 以及我的 lib 文件夹在 JavaFX 中的位置

谢谢。

【问题讨论】:

请准确描述重现问题的每个步骤。我不知道您所说的 "classes filepath" 是什么意思。 modulepath 不是module-info.java 的路径,而是在使用JPMS 时替代classpath。 类文件路径,也就是我所有类所在的位置。要重现它,你点击 Project->Generate JavaDocs->press Finish-> 它出现在控制台的底部,我没有提供任何参数或类似的东西,就像它最初的样子 通过--add-modules 将所需模块添加到Javadoc 向导中的VM 选项是否有效? bugs.eclipse.org/bugs/show_bug.cgi?id=543405#c2 @howlger 感谢您的建议,不幸的是它仍然不起作用:/我添加了--add-modules=javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,org.junit.jupiter.api,javafx.swing 完全相同的错误信息?你使用 Eclipse 2019-09 (4.13) 吗? 【参考方案1】:

我发现暂时删除了你的 module-info.java 文件,生成 JavaDocs 然后点击 undo 使 module-info.java 恢复工作。

这是一个快速修复,但 Eclipse 确实需要 JavaDoc 向导上的一个小按钮来禁用 linting。

【讨论】:

【参考方案2】:

这个问题似乎是 Eclipse 中一个长期存在的问题,自从支持 Java 9 并且 JavaFX 成为 Java SDK 外部的独立模块以来就一直存在。

问题在于 Eclipse 不会自动将与 JavaFX 模块相关的信息传递给 JavaDoc 调用。我想如果它必须为用户可能经常使用的每个模块都这样做,这对于 Eclipse 的开发人员来说将是一项不可能完成的任务。

谢天谢地,我们可以自己做。使用 JavaDoc 向导的第三个屏幕(单击下一步两次)允许我们指定 VM 选项。添加以下内容并更改 JavaFX 的安装路径。

--module-path "C:\Java\javafx-sdk-13.0.1\lib"

在此之后,您应该会发现您的 JavaDocs 生成时没有引发上述错误。我刚刚在我的 2021-06 版本中尝试过这个并且它有效,我在之前的版本中也使用过这个解决方案。

【讨论】:

以上是关于在 Eclipse 中生成 JavaDocs 时出现“未找到模块”消息的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Eclipse 中生成 Javadoc 注释? [复制]

在 Eclipse(weka) 中生成 ROC 曲线

如何使用jpa项目eclipse在实体类中生成唯一约束

Symfony Oneup_uploader 包,在响应中生成 url 时出现问题:\/ 分隔符而不是 /

尝试在 Java 中生成非常大的 PDF 文件时出现 ***Error

在eclipse中生成实体类