如何阻止 Javadoc 使用完全限定名称?

How to stop Javadoc from using fully qualified name?

我正在使用 Javadoc 工具记录一些代码,结果使用系统 类 的完全限定名称,例如 java.lang.String。有没有办法在 java.*javax.* 层次结构中专门针对 类 停止这种情况?

例如,这样的方法定义:

    * @param field String to write.
    * @throws IOException If the underlying stream throws an exception.
    */
   public void writeField( String field ) throws IOException {
      // etc.

像这样生成 Javadoc 输出:

writeField

public void writeField​(java.lang.String field) throws java.io.IOException

    ...etc.

Parameters:
    field - String to write.
Throws:
    java.io.IOException - If the underlying stream throws an exception.

我希望对 java.lang.String 的引用只是 String,对 java.io.IOException 的引用同样只是 IOException.

有什么想法吗?


编辑和更新重新。下面接受的答案:

在 NetBeans 10 中,我为解决此问题所做的工作是转到“项目”视图,然后切换到“文件”视图。然后在项目文件中,找到 nbproject/project.properties 并打开该文件(右键单击,选择打开)。

在属性视图中,向左向下滚动,直到看到 javadoc.additionalparam。然后将以下内容添加到 属性 的右侧(在我的例子中它的值为空)-link https://docs.oracle.com/en/java/javase/11/docs/api/

然后保存(control-S)文件并构建。 Javadocs 现在看起来像我想要的那样。谢谢色拉!

如果

Javadoc 无法 link 输出完全限定名称到 class/method/etc。要使其仅输出简单名称,您必须 link 到外部 Java 文档。这是通过 javadoc 工具的 -link <url> 命令行选项完成的。要 link 到 SE 类(即 java.*javax.*),一种选择是使用:

javadoc -link https://docs.oracle.com/en/java/javase/11/docs/api/ [...]

其中 [...] 是命令行的其余部分。您可以更改 URL 以指向不同版本的 Java(例如 Java 8 而不是 Java 11)。

还有一个 -linkoffline <url1> <url2> 选项。

注意:我相信这两个选项都是由"Standard doclet"提供的。如果不使用标准 doclet,这些选项可能不可用或工作方式不同。