4

この問題について多くの質問があることは知っていますが、誰も私のために解決してくれませんでした! IntelliJ の Community Edition を使用していて、IDE から JavaDoc を実行しようとしました。毎回、どのファイルでも構いませんが、JavaDoc を実行すると、次の出力が得られました。

javadoc: error - cannot read Input length = 1

エンコーディングの問題である可能性があることはすでにわかっています... Windows 10 maschineに取り組んでいます。私はすでに次のことを試しました:

  • JavaDoc argfile エンコーディング エラー
  • cmd.exe /K chcp 65001デフォルトの代わりにIntelliJ からターミナルを起動してcmd.exe、文字セットを UTF-8 に設定します。
  • また、IntelliJ 設定を介してプロジェクトのデフォルトの文字セットを UTF-8 に設定しました (参照:このガイド)

問題は、javadoc_argsそれぞれファイルへのパスのようです...パスはC:\Users\Somebody Müller\AppData\Local\Temp\javadoc_argsです。また、IntelliJ からファイルを表示すると、すべてのü文字が不明な記号に置き換えられます。

Mavenプラグインを介してドキュメントを生成できることは知っていますが、IntelliJ IDEを介して生成したいと思います...

誰かが問題を詳細に特定したり、解決策やその一部を提供したりできますか?

編集

skomisaは状況/行動を簡単な言葉で説明しました:

私にとって、javadoc_argsファイルは存在しません! Javadoc ウィンドウでjavadoc.exeへの引数として名前が付けられていることがわかります。リンクをクリックすると、その内容が Intellij IDEA 内のポップアップ ウィンドウに表示されますが、ファイル エクスプローラーで確認すると、そのようなファイルはありません。これはあなたにも当てはまりますか?どのように生成されるのかわかりません。また、 Müllerという名前のフォルダーにプロジェクトを作成すると、 javadoc_argsの内容を表示するポップアップ ウィンドウ内でüが � としてレンダリングされました。

2018 年 4 月 12 日更新

skomisa が既にコメントしているように、JetBrains はこのバグを将来のバージョン (おそらくバージョン2019.1 (ビルド 191.2458))で修正する予定です。

2019年2月22日更新

この質問はかなり古いことは知っていますが、まだ関連しているようです。JetBrains がバグを修正したかどうかは今まで確認していませんでしたが、SceneBuilder の外部で JavaFX fxml を開こうとすると、同様のバグが発生しました。Windows 10 ユーザー ディレクトリの名前変更に関する別の投稿で、少なくとも Windows ユーザー向けの回避策を見つけました。パスなしで追加のユーザー ディレクトリを作成üし、既存のディレクトリにリンクするだけです。

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

リンクをプロジェクト パスのディレクトリとして使用すると、正常に動作するはずです。

4

2 に答える 2

1

パスの名前に文字ü (u とウムラウト)が含まれている場合、Intellij IDEA でプロジェクトの Javadoc を生成できません。回避策は、プロジェクト ディレクトリのファイル パスにウムラウトが含まれないように、プロジェクトの名前を変更することです。

再現するには:

  • プロジェクト ウィザードを使用して、ルート ディレクトリ名にüが含まれる単純なJava Hello Worldプロジェクトを作成します。テスト目的でMüllerを使用しました。

  • main()のクラスに有効な Javadoc ドキュメントが含まれていることを確認してください。

  • プロジェクトをビルドして実行し、予期しない問題がないことを確認します。

  • Tools > Generate Javadoc を選択し、空の出力ディレクトリを指定してOKをクリックします。

  • Javadoc の作成がエラーで失敗します - 入力の長さ = 1 を読み取ることができません(以下を参照) 。C:\Users\johndoe\AppData\Local\Temp\javadoc_argsへのリンクをクリックすると、ファイル パスのüが (誤って) 表現されていることが示されますこれはおそらく Javadoc エラーの原因です。

  • ただし、ルート ディレクトリの名前をMüllerからMullerに変更すると(ウムラウトを削除するため)、Javadoc の作成は次のように機能します。

    javadocWorks

  • 健全性チェックとして、プロジェクトの名前をMullerからMüllerに戻し、エラーを再導入します。

    javadocの失敗

ノート:

  • コメントに記載されているように、javadoc_argsファイルは存在せず、Javadoc 作成プロセス中にその使用を防ぐ方法はありません。
  • プロジェクト名をMüllerにすることは問題ではありません。問題を引き起こすのは、プロジェクトのファイル パス内にüがあることです。
  • 環境: Windows 10 + Intellij IDEA 2018 3.1 EAP (Ultimate Edition) + Open JDK 10。
  • これについては、JetBrains でバグ レポートを作成しました: https://youtrack.jetbrains.com/issue/IDEA-202849

2018 年 11 月 25 日更新

プロジェクトのパスの名前を変更しなくても、この問題を回避できます。

  • Generate Javadocを実行し、失敗させます。
  • Javadocウィンドウに表示されているファイル.../javadoc_argsへのリンクをクリックします。
  • ファイルjavadoc_argsの内容をテキスト エディターにコピー アンド ペーストします。
  • 誤って表示されている文字を修正します (たとえば、M�llerMüllerに変更します)。
  • UTF-8 エンコーディングと同じ絶対ファイル名を使用してファイルを保存します。
  • コマンド プロンプトウィンドウを開きます。
  • Intellij IDEA の Javadoc ウィンドウからjavadoc.exeコマンド全体をコピーし、コマンド プロンプトウィンドウに貼り付けます。
  • 貼り付けた行を送信します。プロジェクトのパスがファイルjavadoc_argsで正しく指定されているため、これで機能します。
于 2018-11-24T08:05:07.533 に答える