Netbeans 11.3 "Cannot perform Show Javadoc here"

Netbeans 11.3 "Cannot perform Show Javadoc here"

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

但是包含 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

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

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

$ 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:/。没有成功。

有什么解决这个问题的想法吗?

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

  • 下载并解压缩 Fazecast 代码的源代码。
  • 在 NetBeans 中使用 工具 > 库管理器 引用本地解压缩的源。

详情如下:

  • 转到 https://fazecast.github.io/jSerialComm/ 和 select 下载 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 select 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 项目。
  • 您可以 open an issue report 与 Fazecast 一起解决无法从 NetBeans 访问在线 javadoc 的问题,因为我认为这不是 NetBeans 的问题。您还可以要求他们考虑为 jSerialComm 提供可下载的 javadoc 文件。
  • 链接到 NetBeans 中的 Fazecast 源代码的另一个好处是,您可以通过单击 javadoc window 中的 在编辑器中打开源代码 图标打开他们的代码,如上面的屏幕截图所示。 Navigate > Go to SourceCTRL + Shift + B 如果光标在 Fazecast 方法上也有效。

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

就是这样!没有麻烦。