IntelliJ JavaDoc - 错误 - 无法读取输入长度 = 1

IntelliJ JavaDoc - error - cannot read Input length = 1

我知道有很多关于这个问题的问题,但没有一个能帮我解决!我正在使用 IntelliJ 的社区版,我试图通过 IDE 运行 JavaDoc。每次对于哪个文件都没有关系,我 运行 JavaDoc 我得到以下输出:

javadoc: error - cannot read Input length = 1

我已经发现,这可能是编码问题...我正在研究 Windows 10 机器。我已经尝试过以下方法:

问题似乎是 javadoc_args 文件以及该文件的路径...路径是 C:\Users\Somebody Müller\AppData\Local\Temp\javadoc_args。此外,如果我从 IntelliJ 查看文件,所有 ü 字符都将替换为未知符号。

我知道我可以通过 maven 插件生成文档,但我更愿意通过 IntelliJ IDE...

有人可以详细确定问题吗and/or 提供解决方案或部分解决方案?

编辑

skomisa 用简单的话描述了 situation/behaviour:

For me the javadoc_args file does not exist! I see it is named in the Javadoc window as an argument to javadoc.exe, and if I click the link its content is shown in a pop up window within Intellij IDEA, but if I check in File Explorer there is no such file. Is this the case for you as well? I have no idea how it gets generated. Also, I created a project in a folder named Müller and the ü was rendered as � within the popup window that showed the content of javadoc_args.

2018 年 4 月 12 日更新

正如 skomisa 已经评论的那样,JetBrains 计划在未来的版本中修复此错误,可能在版本 2019.1(内部版本 191.2458).

更新 22/02/2019

我知道这个问题很老了,但它似乎仍然相关。到目前为止,我没有检查 JetBrains 是否修复了该错误,但是当我尝试在 SceneBuilder 外部打开 JavaFX fxml 时,我遇到了类似的错误。在另一个关于重命名 Windows 10 用户目录的 post 中,我找到了一个至少对 Windows 用户可用的解决方法!只需在路径中创建一个没有 ü 的附加用户目录,并将 link 添加到现有目录:

C:
CD\Users
MKLINK /J Müller Mueller

如果您现在使用 link 作为项目路径的目录,它应该可以正常工作。

如果路径名称包含字符 ü(u 带有变音符号),我无法在 Intellij IDEA 中为项目生成 Javadoc。解决方法是重命名项目,使项目目录文件路径不包含变音符号。

重现:

  • 使用项目向导创建一个简单的 Java Hello World 项目,其中根目录名称包含 ü。我使用 Müller 进行测试。

  • 确保 main() 的 class 包含有效的 Javadoc 文档。

  • 构建并运行项目以验证没有意外问题。

  • Select 工具>生成Javadoc,指定一个空的输出目录然后单击 确定

  • Java文档创建失败并出现 错误 - 无法读取输入长度 = 1(如下所示),然后单击 link 到 C:\Users\johndoe\AppData\Local\Temp\javadoc_args 显示文件路径中的 ü 被(错误)表示为 �,这大概是原因Java文档错误。

  • 但是,一旦根目录从 Müller 重命名为 Muller(删除变音符号),Java文档创作作品:

  • 作为完整性检查,将项目从 Muller 重命名回 Müller 以重新引入错误:

备注:

  • 如评论中所述,javadoc_args 文件不存在,而且我认为在 Javadoc 创建期间没有办法阻止使用它过程。
  • 将项目名称设为 Müller 不是问题;它在导致问题的项目文件路径中有 ü
  • 环境:Windows10+Intellij IDEA 2018 3.1 EAP(终极版)+打开JDK10.
  • 我为此向 JetBrains 提交了错误报告:https://youtrack.jetbrains.com/issue/IDEA-202849

18 年 11 月 25 日更新

无需重命名项目路径即可解决此问题:

  • 运行 生成 Javadoc 并让它失败。
  • 点击 link 文件 .../javadoc_args 显示在 Javadoc window.
  • 将文件 javadoc_args 的内容复制并粘贴到文本编辑器中。
  • 更正任何错误表述的字符(例如,将 M�ller 更改为 Müller)。
  • 使用 UTF-8 编码保存文件,并使用相同的绝对文件名。
  • 打开一个命令提示符 window。
  • 从 Intellij IDEA 中的 Javadoc window 复制整个 javadoc.exe 命令并将其粘贴到 命令提示符 window.
  • 提交粘贴的行。它现在可以工作了,因为在文件 javadoc_args.
  • 中正确指定了项目的路径

今天(2​​021 年 8 月 21 日)我尝试生成 javadoc,但失败了。错误消息是:

javadoc:错误 - 无法读取输入长度 = 1

在我的例子中,它指的是文件路径的长度,如下所示。

D:\Tecnologia(ytrabajo)ysistemas26sep2020\misiontic2022\U El Bosque\UEB académico\Ciclo 2\Programación Básica\NetBProjects\R5DTO_DAOMVC_GUI

所以我将路径缩短为:

D:\Tecnologia(ytrabajo)ysistemas26sep2020\misiontic2022\NBProjects(m)\R5DTO_DAOMVC_GUI

如您所见,这条路线比第一条路线短,因此 NetBeans 可以访问它并生成 javadoc。

注意:NetBeans 不可能因为以下字符而无法读取该位置:我在第一个文件位置使用的单词 académico 和 Básica 中的 é 和 á。因为,在那个位置,我试图在位于那里的另一个项目中生成一个 JavaDoc,而 NetBeans 生成了该 Doc。所以报错更多的是路径的长度和项目中的文件名。