JDKアップデートに伴うJavadocの機能変更 ~削除された機能と対処について解説~
富士通技術者ブログ~Javaミドルウェア~

2024年1月18日 初版
田端 大志

Javadocとは、Javaソースに記述したコメントからAPIドキュメントを生成するツールです。
Javadocは、HTML5やJPMS(注)等の新しい技術への対応をしてきましたが、一方で、古い技術を利用し、ほとんど使われなくなった以下の4機能を、OpenJDK 13で削除することになりました。

  • HTML4形式のドキュメント生成
  • Javadoc関連のcom.sunパッケージ
  • HTMLフレームを使用したドキュメントの生成
  • --no-module-directoriesオプション

本稿では、削除された機能の概要と、削除された機能を利用していた場合の影響と対処について説明します。

  • (注)
    JPMSは、Java Platform Module Systemの頭字語であり、Javaプラットフォーム全体をモジュール化することで、Javaを開発者にとってより開発、保守しやすいプラットフォームにすることを目的として定められた仕様です。

HTML4形式のドキュメント生成

HTML4形式でのドキュメントの生成ができなくなりました。これに伴い、HTML4形式のドキュメント生成を指定する以下のオプションが削除されました。

  • -html4

Javadocは複数のバージョンにわたって、HTML4からHTML5へサポートを推移してきました。
下の表にその推移をまとめています。

HTML4 HTML5
~OpenJDK 8 デフォルト -
OpenJDK 9,OpenJDK 10 デフォルト オプション
OpenJDK 11,OpenJDK 12 オプション デフォルト
OpenJDK 13~ - デフォルト

このように、JavadocはHTML5黎明期から対応してきましたが、当初は対応ブラウザが少ないことから、HTML5形式をオプション対応としていました。そして、HTML5の普及に伴い、HTML4形式がオプション対応となり、今となっては、使用頻度の少ない機能であるとしてHTML4形式のオプションが削除されました。

影響

「-html4」オプションを使用していた場合、オプションが見つからない旨のエラーが発生し、ドキュメントが生成されません。

対処

「-html4」オプションを指定からはずしてください。HTML5形式でドキュメントを生成することができます。

Javadoc関連のcom.sunパッケージ

' jdk.javadoc ' モジュールに含まれていた以下のパッケージが削除されました。

  • com.sun.javadoc
  • com.sun.tools.doclets
  • com.sun.tools.doclets.standard
  • com.sun.tools.javadoc

OpenJDK 8まではこれらのパッケージに含まれるAPIによってJavadocの機能が実現されていましたが、OpenJDK 9でリリースされた「JEP221: New Doclet API」で新たなドックレットとして ' jdk.javadoc.declet ' パッケージが追加され、従来のものと置き換えられました。このタイミングで上記のパッケージは「古く非推奨なJavadoc」として扱われるようになり、移行のための猶予期間が設けられましたが、猶予期間が終了し、OpenJDK 13で削除されました。

影響

javadocコマンドのみを使用するユーザには影響がありません。削除されたパッケージに含まれるAPIを使用していた場合、APIが見つからずエラーとなります。

対処

削除されたAPIのうち、 ' com.sun.javadoc ' パッケージ以外のAPIは対応する ' jdk.javadoc.declet ' パッケージのAPIに置き換えてください。

' com.sun.javadoc ' パッケージのAPIについては、対応するAPIが ' jdk.javadoc.declet ' パッケージにないため、 ' javax.lang.model ' パッケージおよび ' com.sun.source ' パッケージに含まれるAPIを使用します。具体的には、 [Java SE 13 APIドキュメント jdk.javadoc.declet - 移行ガイド] に記載されているマッピングをご参照いただき、削除されたAPIを対応するAPIへ変更してください。

ただし、すべてのAPIに互換性があるわけではないのでアプリケーションの修正が必要になる場合があります。

HTMLフレームを使用したドキュメントの生成

HTMLフレームを使用したドキュメントの生成ができなくなりました。これに伴い、HTMLフレームを使用したドキュメント生成を指定する以下のオプションが削除されました。

  • --frames

影響

「--frames」オプションを使用していた場合、オプションが見つからない旨のエラーが発生し、ドキュメントが生成されません。また、HTMLフレームは使用できなくなります。

対処

「--frames」オプションを指定からはずしてください。HTMLフレームを使用していないドキュメントを生成することができます。
ただし、Javadoc検索機能として、HTMLフレームを使用していた場合、代替機能として、OpenJDK 9で「JEP225: Javadoc Search」として追加された、Javadocで生成されたドキュメント内の目的のページを検索する機能があります。

--no-module-directoriesオプション

「--no-module-directories」オプションは、JPMSにJavadocが対応できていない問題を解決したため不要となりました。

影響

「--no-module-directories」オプションを使用していた場合、オプションが見つからない旨のエラーが発生し、ドキュメントが生成されません。

対処

「--no-module-directories」オプションを指定からはずしてください。JPMSに対応したドキュメントを生成することができます。

おわりに

OpenJDK 13でJavadocから削除された4つの機能について紹介しました。新しいバージョンに移行する際の参考としてください。

本コンテンツに関するお問い合わせ

お電話でのお問い合わせ

富士通コンタクトライン(総合窓口)

0120-933-200

受付時間:9時~12時および13時~17時30分
(土曜日・日曜日・祝日・当社指定の休業日を除く)

Webでのお問い合わせ

当社はセキュリティ保護の観点からSSL技術を使用しております。

ページの先頭へ