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 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...
有人可以详细确定问题吗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.
中正确指定了项目的路径
今天(2021 年 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。所以报错更多的是路径的长度和项目中的文件名。
我知道有很多关于这个问题的问题,但没有一个能帮我解决!我正在使用 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...
有人可以详细确定问题吗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. 中正确指定了项目的路径
今天(2021 年 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。所以报错更多的是路径的长度和项目中的文件名。