如何编写Javadoc链接?

44

如何在javadocs中编写链接?

目前,我有类似以下的内容:

{@link java.lang.Math#sqrt(double) Math.sqrt}

为了生成文本Math.sqrt,它应该链接到java.lang.Math.sqrt(double) API,但它只是生成文本,没有链接。


http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html - Martin Spamer
4个回答

21

我的答案与Eddie提供的非常相似,但他的确切代码对我不起作用(或者至少在使用随Java 1.6附带的javadoc版本时不起作用)

如果我执行:

    javadoc -linkoffline http://java.sun.com/javase/6/docs/api/ 
                         http://java.sun.com/javase/6/docs/api/package-list
            -public FileName.java

然后javadoc会报错:

    javadoc:警告-获取URL时出错:
    http://java.sun.com/javase/6/docs/api/package-list/package-list

另一方面,如果我执行:

    javadoc -linkoffline http://java.sun.com/javase/6/docs/api/ 
                         http://java.sun.com/javase/6/docs/api/ 
            -public FileName.java

那么它就可以工作了,并且我的链接已按我想要的方式填充。

此外,我的链接没有格式错误。文本{@link java.lang.Math#sqrt(double) Math.sqrt}会将链接文本生成为Math.sqrt而不是默认的Math.sqrt(double)


关于第一种变体(当您在URL中包含package-list时),javadoc文档页面的参数packagelistLoc(引用)中说:不要包括package-list文件名。这就解释了一切。 - informatik01

19
要获取到与你的代码无关的外部链接,你需要使用-linkoffline选项。
其中-linkoffline选项的格式类似于这样(人为换行):
-linkoffline http://java.sun.com/javase/6/docs/api/
             http://java.sun.com/javase/6/docs/api/

这告诉JavaDoc工具在哪里找到JavaDoc的链接以及要使用该链接的包。从第二个URL开始,它将附加“package-list”以加载实际的URL:

http://java.sun.com/javase/6/docs/api/package-list

你可以通过在浏览器中加载它来验证,它确实包含了在该JavaDoc URL上记录的软件包列表。这告诉JavaDoc工具,任何@link引用到那些软件包中的任何内容都应链接到提供的URL。


你的确切答案对我不起作用,但你给了我我所需要的。 - masher
2
这条链接并没有格式错误 -- 你可以提供一个字符串文本作为第二个参数来作为链接标签使用。 - mipadi
@mipadi:哦!在我多年的Java编程中,我从未见过这种情况。谢谢你让我知道。我会更正我的答案。 - Eddie

0

我相信对于你想做的事情,你可以这样实现:

@see java.lang.Math#sqrt(double)

它不会给你替代文本,但会给你链接。

您还可以使用标准HTML编写更通用的链接:

<a href="http://www.google.com">Google</a>

-1

这份文档可能会有所帮助,记住对于@link,您需要使用要链接到的文档的URL。


链接失效了。这就是为什么我们不会在stackoverflow(或堆栈交换总体上)发布链接的原因。 - Philippe Carriere

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接