【问题标题】:Netbeans 11.3 "Cannot perform Show Javadoc here"Netbeans 11.3“无法在此处执行 Show Javadoc”
【发布时间】:2020-07-26 03:58:32
【问题描述】:

在我的设置中显示标准库(java.base,...)的 Javadoc 工作正常。

但是为其他库包含 Javadoc 总是失败。我正在寻找一个提示,可以做些什么来解决这个问题或获得更多关于这个问题的根本原因的输出。

我有以下源代码:

import com.fazecast.jSerialComm.SerialPort;

public class JavaTestAoolication {
    public static void main(String[] args) {
        SerialPort.getCommPorts();
    }
}

我尝试通过菜单 Tools -> Java Platforms 和标签 javadoc 为这个库添加 javadoc 路径。

这会在 netbeans 配置文件 ~/.netbeans/11.3/config/Services/Platforms/org-netbeans-api-java-Platform/default_platform.xml 中产生以下条目

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE platform PUBLIC "-//NetBeans//DTD Java PlatformDefinition 1.0//EN" "http://www.netbeans.org/dtds/java-platformdefinition-1_0.dtd">
<platform default="yes" name="JDK 11 (Default)">
    <properties>
        <property name="platform.ant.name" value="default_platform"/>
    </properties>
    <javadoc>
...
        <resource>https://fazecast.github.io/jSerialComm/javadoc/</resource>
        <resource>file:/usr/share/htl-libjserialcomm-java/2.6.1/javadoc/api/</resource>
...
   </javadoc>
</platform>

选择上下文菜单 -> 在SerialPort.getCommPorts() 上显示 Javadoc 始终会导致消息:
无法在此处执行显示 Javadoc。

但是链接是存在的:
https://fazecast.github.io/jSerialComm/javadoc/com/fazecast/jSerialComm/SerialPort.html

并且本地文件夹也存在(没有符号链接):

$ ls -la /usr/share/htl-libjserialcomm-java/2.6.1/javadoc/api/com/fazecast/jSerialComm/SerialPort.html 
-rw-r--r-- 1 user user 115981 Apr  9 17:02 /usr/share/htl-libjserialcomm-java/2.6.1/javadoc/api/com/fazecast/jSerialComm/SerialPort.html

我也尝试使用file:// 而不是file:/。没有成功。

任何想法如何解决这个问题?

【问题讨论】:

    标签: java netbeans javadoc netbeans-11


    【解决方案1】:

    如果您使用的是 maven 项目,那么有一个非常好的功能。将库添加到 pom.xml 后,进入项目树,找到您的库,右键单击 -> 下载 Javadoc。

    就是这样!不用麻烦。

    【讨论】:

      【解决方案2】:

      TLDR:我遇到过与您类似的问题,但有一个相当简单的解决方法:

      • 下载并解压缩 Fazecast 代码的源代码。
      • 在 NetBeans 中使用 Tools > Library Manager 引用本地解压缩的源代码。

      详情如下:

      • 转到https://fazecast.github.io/jSerialComm/ 并选择下载 zip 文件的选项,如屏幕右上角所示。
      • 下载的文件名为 Fazecast-jSerialComm-v2.6.1-0-gf3d1e89.zip。解压那个。项目的*.java 源文件将在解压后的目录...\Fazecast-jSerialComm-v2.6.1-0-gf3d1e89\Fazecast-jSerialComm-f3d1e89\src\main\java\com\fazecast\jSerialComm 中。
      • 在 NetBeans 中选择 Tools > Library Manager,然后单击 New Library... 为 Fazecast 创建一个条目。然后,对于那个新条目:
        • 点击Classpath标签并点击Add JAR/Folder...按钮,然后导航到您下载的jSerialComm-2.6.1.jar。
        • 单击Sources 选项卡并导航到解压缩源目录中com.fazecast 包的父目录。就我而言,这是D:\Downloads\FazecastJSerialComm\Fazecast-jSerialComm-v2.6.1-0-gf3d1e89\Fazecast-jSerialComm-f3d1e89\src\main\java
        • 这是违反直觉的,但您无需在 Javadoc 选项卡上输入任何内容!

      完成后,关闭并重新打开调用 Fazecast 方法的源文件,javadoc 应该可以工作。这是SerialPort.getCommPorts() 的示例,我在该方法的javadoc 中插入了HELLO WORLD!!!,以证明正在访问本地源:

      注意事项:

      • 我的环境是 Windows 10、NetBeans 11.3 和 JDK 14,我创建了一个简单的 Ant 项目。
      • 您可以通过 Fazecast open an issue report 解决无法从 NetBeans 访问在线 javadocs 的问题,因为我认为这不是 NetBeans 问题。您还可以要求他们考虑为 jSerialComm 提供可下载的 javadoc 文件。
      • 在 NetBeans 中链接到 Fazecast 源的另一个好处是,您可以通过单击 javadoc 窗口中的 在编辑器中打开源代码 图标打开他们的代码,如上面的屏幕截图所示。如果光标位于 Fazecast 方法上,Navigate > Go to Source 或 CTRL + Shift + B 也可以使用。

      【讨论】:

      • Using Tool -> Libraries to add global libraries with there Javadoc 工作正常。这不仅是解决此问题的方法,而且是比将 javadoc 路径添加到平台定义中更好的方法。非常感谢。
      • 是的,Tools > Libraries 是 JDK 之外的所有第三方软件的必经之路。如果该软件可以下载其源代码(如 Fazecast 所做的那样),您可以按照上述方法生成其 javadocs 并访问代码。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多