Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javadoc 11-流氓?_Java_Javadoc_Java 11 - Fatal编程技术网

Javadoc 11-流氓?

Javadoc 11-流氓?,java,javadoc,java-11,Java,Javadoc,Java 11,我想为testfx包编译javadoc 所以我得到了源jar并提取(testfx-core-4.0.15-alpha-sources.jar、testfx-junit-4.0.15-alpha-sources.jar) 我发现所有这些包都以“org.testfx…”开头,所以把它们放在一起。。。然后我说: mike@M17A ~/Desktop/temp $ javadoc -d docs -Xmaxwarns 10 -Xdoclint:none -sourcepath . -subpack

我想为
testfx
包编译javadoc

所以我得到了源jar并提取(testfx-core-4.0.15-alpha-sources.jar、testfx-junit-4.0.15-alpha-sources.jar)

我发现所有这些包都以“org.testfx…”开头,所以把它们放在一起。。。然后我说:

mike@M17A ~/Desktop/temp $  javadoc -d docs -Xmaxwarns 10  -Xdoclint:none -sourcepath . -subpackages org
它列出了以下类型的100个错误:

**  symbol:   class TextFlow
  location: class TextFlowMatchers
./org/testfx/matcher/control/TextFlowMatchers.java:157: error: cannot find symbol
    private static boolean hasText(TextFlow textFlow, String string) {
**
。。。然后停下来。没有生成Javadoc!这些(显然)是我试图记录的包之外的类。我不想要这些的超链接,请把它们写出来

注意:在命令行中还有一个开关,
-Xmaxerrs 10
。这只是将错误列表限制为10个,但Javadoc本身也不会生成

这项技术过去常常奏效。我刚刚升级到Java11。这似乎是Java11的新特性。有人知道如何克服这种胡说八道吗

稍后,响应Slaw

我非常喜欢所有模块和框架的参考文档的本地副本,以及我使用的所有语言的参考文档。我不知道在线Javadoc的链接。我可能会使用HTTrack复制那个特定的网站,并制作一个本地副本

我尝试了另一种方法:克隆git repo并运行
/gradlew aggregateJavadoc
。不幸的是,这失败了:

mike@M17A ~/Desktop/temp2/TestFX $  ./gradlew aggregateJavadoc
> Task :aggregateJavadoc FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':aggregateJavadoc'.
> /home/mike/Desktop/temp2/TestFX/docs/javadoc does not exist
。。。在你问之前,是的,我试着在那里创建一个/javadoc文件夹,但是任务删除了它,然后再次抱怨它不存在

我还尝试了简单的
javadoc
任务。这也失败了:

mike@M17A ~/Desktop/temp2/TestFX $  ./gradlew javadoc

> Task :testfx-core:compileModuleInfoJava
/home/mike/Desktop/temp2/TestFX/subprojects/testfx-core/src/main/java/module-info.java:37: 
warning: requires transitive directive for an automatic module
    requires transitive org.hamcrest;
                           ^
1 warning

> Task :testfx-core:javadoc FAILED
/home/mike/Desktop/temp2/TestFX/subprojects/testfx-core/src/main/java/module-info.java:36:
error: module not found: org.assertj.core
    requires static org.assertj.core;
                               ^
1 error
解决方法

幸运的是,我已经设法获得了Java 8安装的支持,它仍然在我的系统上,在我的例子中是:/usr/lib/jvm/Java-8-openjdk-amd64/javadoc。显然我会设置一个符号链接。使用Java8的额外好处:我个人比较喜欢Javadocs的“框架”版本,即左侧框架中列出的包和类

结论


是什么让Java背后的杰出人士(不是讽刺)修改了这样的东西?我非常仔细地研究了JavaDocV可用的开关和选项。11没有任何东西可以让你制作一个简单的,呃,Javadoc,我天真地认为这就是Javadoc实用程序的目的

您是否尝试过克隆并运行
/gradlew aggregateJavadoc
?该任务由root
build.gradle
文件添加到根项目中。另外,请注意存储库的自述文件链接到为各个子项目提供的。我可以问一下为什么要自己生成Javadoc吗?也就是说,您可以尝试将JavaFX模块添加到
--类路径
--模块路径
,看看这是否解决了问题。是否有您不使用的jdk 11的更新版本?也许你升级到了一些不是最新的东西。@Slaw非常感谢。请参阅补充。我喜欢有一个本地Javadoc(以及我使用的所有语言的其他编码参考文档),因为查找速度快(我的网络连接在一天/一周中的某些时候可能非常糟糕)并且能够离线编码。我不喜欢使用
--类路径
--模块路径
,因为我使用的是javafx插件(
id'org.openjfx.javafxplugin'version'0.0.8'
),所以事实上我根本没有设置这些路径。@kaan谢谢。我使用的是11.0.4,它似乎是Java11的最新版本。我不认为这在以后的版本中被“纠正”了:趋势一直是对这个特定实用程序(doclint等)的使用施加越来越强烈的限制,所以我希望Java 12、13等也会出现这种情况。超出我的工资等级和理解力的奥秘。Hmm。好的,修复Gradle故障(通过让任务在删除目录后创建目录)
javadoc
仍然会失败,并出现多个模块错误(“找到的模块声明太多”、“找不到模块:”)。因为我不熟悉TestFX的构建环境,所以我不知道如何解决这个问题(可以简单地传递适当的属性)。这就是说,对于这个特定的图书馆,他们是这样做的。您可以手动下载并提取内容。