Hyperlink Javadoc标记@link with Doxygen:无法解析链接

Hyperlink Javadoc标记@link with Doxygen:无法解析链接,hyperlink,javadoc,doxygen,Hyperlink,Javadoc,Doxygen,我用Javadoc编写了文档,我非常欣赏与Eclipse的集成,但是我想使用Doxygen来添加图表 我在几个简短的描述中使用标记{link foo}链接到标准Java类和我自己的类 以下是SSCCE: package org.foo.myproject; import javax.swing.JList; /** * This is a Javadoc line {@link JList} * * @author theauthor * @version 1.0.0 */ pu

我用Javadoc编写了文档,我非常欣赏与Eclipse的集成,但是我想使用Doxygen来添加图表

我在几个简短的描述中使用标记{link foo}链接到标准Java类和我自己的类

以下是SSCCE:

package org.foo.myproject;

import javax.swing.JList;

/**
 * This is a Javadoc line {@link JList}
 * 
 * @author theauthor
 * @version 1.0.0
 */
public class JavadocLinkFailedDemo {
}
我在Doxygen(1.8.4)中遇到以下错误:
警告:无法解析指向JList for\link命令的链接(我使用由Doxygen.exe生成的doxyfile模板,针对.java源和特定输入/输出目录进行编辑)

这是一个与此类似的问题,但主题作者的解决方案并不适合我

提前谢谢你的帮助

编辑1: 我只是尝试用doxygen生成javaapi,以获得相应的标记文件。然后,我在这个演示项目中使用了这个文件,其中我添加了一个构造函数,使用一个参数作为JList=>链接只针对这个参数解析,而不使用link命令

编辑2: 我终于成功地保留了这种签名:{@link…}。 在我的示例中,如果满足以下条件,则会解析JList:
-写入类文件的完全限定名
-使用doxygen生成jdk文档,以生成标记文件并在项目中使用此标记

最后一个示例代码是:

package org.foo.myproject;

import javax.swing.JList;

/**
 * This is a Javadoc line with {@link javax.swing.JList}
 * 
 * @author theauthor
 * @version 1.0.0
 */
public class JavadocLinkFailedDemo {
    /**
     * This is a Javadoc line of the constructor with {@link javax.swing.JList}
     * 
     * @param aList
     *            The list
     */
    public JavadocLinkFailedDemo(JList aList) {
    }
}
最终结果:


然而,构建.chm帮助文件几乎是不可能的,因为执行此任务需要一段时间,并且您会得到一个非常大的文件。但这是另一个问题…

我没有尝试过这个,但我相信你需要的是一个转义字符在你链接之前。这应该看起来像
\@link
@@link
,但我更喜欢
\@link


现在我相信doxygen应该能够正确处理您的javadoc注释,但是我不确定这是否适用于javadoc,或者javadoc是否正在抱怨。另外,在您的doxygen文档中它可能看起来很奇怪,因为应该会显示一个
@link JList}
。。。我想这也不是你想要的。

对不起,我看错了。它对我也很有用,但如果我想修复javadocapi的每个链接,我有很多项目要更新。因此,我正在寻找一种解决方案,将我的项目文档链接到这个外部文档。我看到了这一点,但我知道它适用于外部Doxygen文档,而不适用于脱机Javadoc文档(它以.zip存档格式提供)。我试图在我的jdk的src文件上运行Doxygen,但我有很多错误……啊,好吧,我相信我明白了你的问题所在,你使用@link作为Javadoc注释,当你运行Doxygen时,它将handels\link作为Doxygen注释,并给你很多errorsEach命令,以at符号(@)开头的命令应该是受支持的。看这个。当课程需要外部链接时,Doxygen似乎无法使用任何格式的link命令,但
@link
是一条具有指定签名的JavaDoc指令
{@link…}
@link
也是一条Doxygen指令。因此,如果您使用JavaDoc,它就能够解释您的指令。如果运行doxygen,它将无法解释指令,因为它需要一个
@endlink
指令来完成指令。因此,您需要区分这两个命令。