在 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 注释? [复制]
Symfony Oneup_uploader 包,在响应中生成 url 时出现问题:\/ 分隔符而不是 /