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

时间:2018-11-11 12:09:10

标签: intellij-idea character-encoding windows-10 javadoc windows-1252

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

javadoc: error - cannot read Input length = 1

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

  • JavaDoc argfile encoding error
  • 使用cmd.exe /K chcp 65001(而不是默认的cmd.exe)从IntelliJ启动终端以将字符集设置为UTF-8
  • 我还通过IntelliJ设置将项目的默认字符集设置为UTF-8(请参阅:This Guide

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

我知道我可以通过maven插件生成文档,但是我更愿意通过IntelliJ IDE来实现。

有人可以详细识别问题和/或提供解决方案,还是部分解决方案?

编辑

skomisa用简单的话描述了情况/行为:

  

对我来说 javadoc_args 文件不存在!我看到它在Javadoc窗口中被命名为 javadoc.exe 的参数,如果单击链接,它的内容将显示在Intellij IDEA的弹出窗口中,但是如果我签入File Explorer,没有这样的文件。您也是这种情况吗?我不知道它是如何产生的。此外,我在名为Müller的文件夹中创建了一个项目,并在显示 javadoc_args 内容的弹出窗口中将ü渲染为``。

更新2018年4月12日

正如skomisa所说,JetBrains计划在将来的版本中修复此错误,可能在版本 2019.1(内部版本191.2458)中。

更新22/02/2019

我知道这个问题已经很老了,但似乎仍然很重要。到目前为止,我还没有检查JetBrains是否修复了该错误,但是当我尝试在SceneBuilder中从外部打开JavaFX fxml时,发生了类似的错误。在关于重命名Windows 10用户目录的另一个post中,我发现了至少对于Windows用户而言可行的解决方法!只需在路径中创建没有ü的其他用户目录并链接到现有目录即可:

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

如果您现在将链接用作项目路径的目录,它应该可以正常工作。

1 个答案:

答案 0 :(得分:1)

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

要复制:

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

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

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

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

  • Javadoc创建失败,并出现错误-无法读取输入长度= 1 (如下所示),然后单击指向 C:\ Users \ johndoe \ AppData \ Local \的链接Temp \ javadoc_args 显示文件路径中的ü被(mis)表示为``,这可能是Javadoc错误的原因。

  • 但是,一旦将根目录从Müller重命名为 Muller (以删除变音符号),Javadoc的创建就会起作用:

    javadocWorks

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

    javadocFails

注意:

  • 如评论中所述, javadoc_args 文件不存在,而且我看不出有任何方法可以防止在Javadoc创建过程中使用它。
  • 将项目名称命名为Müller并不是问题;在项目的文件路径中包含ü会导致问题。
  • 环境:Windows 10 + Intellij IDEA 2018 3.1 EAP(Ultimate Edition)+打开JDK 10。
  • 我为此向JetBrains提出了一个错误报告:https://youtrack.jetbrains.com/issue/IDEA-202849

更新18/11/25

有一个解决此问题的方法,而无需重命名项目的路径:

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