Java11からAPI仕様のフレーム版がなくなってしまった

API仕様とは

Javaの公式ドキュメントにある、APIの仕様が書かれたサイトのことだ。

◆Java11のAPI仕様
https://docs.oracle.com/javase/jp/11/docs/api/index.html

リンク先のサイトを見ると、タイトルの最後に「API仕様」と書かれているので、そのように呼んでみただけのことに過ぎない。
この呼び方が公式なのかどうかは、よく分からない。

英語版では「API spcification」になっている。

フレーム版とは

Java10までは、API仕様のサイトには左側にサイドバーが付いていて、これがメニューの役割を果たしていた。
一定量以上のコンテンツが存在するWebサイトには、ショートカットとしてのメニューを置くのは定番だが、API仕様の場合はこの役割をサイドバーが果たしていたのだ。

◆Java10のAPI仕様

もっとも、このサイドバーは、利用者の好みでオフにすることが可能だ。
そのためのリンクが、画面の上部に設定されている。

「フレーム」「フレームなし」の2つのリンクが並んでいる箇所がそれで、デフォルトの状態では「フレーム」が選択されている状態になっていた。

この「フレーム」が選択されている状態を、俗に「フレーム版」と称していたのだ。

なぜフレーム版が消えたのか?

フレーム版が消えた理由は、よく分からないというのが実際のところだ。
明らかに便利なものだったのに、なぜか削除されてしまった。

Java12以降のドキュメントにも今のところフレーム版はないので、この変更はどうやら恒久的なものであるようだ。

僕が思いつく変更理由としては、「<iframe>タグを排除したかった」というのがある。
<iframe>タグはHTML5で大きく仕様が変更されたタグの一つで、どちらかと言えば最近はあまり使われなくなったタグだ。

特に「メニューを制御する用途」としては「古い技術」と見做され、新しく作られるWebサイトでは全くと言っていいほど採用されなくなってしまったタグでもある。

Java10以前のAPI仕様では、まさにこの「メニューを制御する用途」に<iframe>タグが使われているため、必要以上に排除論が盛り上がってしまったのかも知れない。

ちなみに、最近のWebサイトでは、メニュー機能はCSSで実装するのが一般的だ。
このブログのメニューも、CSSを用いて実現されている。

対処法

どうやら、自分でJavadocを作成する以外の方法はないようだ。

JDKに付属の、javadocコマンドを使えば、Javadocが出力可能だ。
皮肉なことに、何もオプションを指定せずにjavadocコマンドを実行すると、フレーム版のJavadocが出力される。
Javaの公式サイトは、わざわざフレーム機能を削除したJavadocを作成して掲載しているようだ。

なお、javadocコマンドでJava11用のJavadocを作成するには、事前にJDKとJava11ソースプログラムのダウンロードが必要だ。

もちろん、作成したJavadocはローカル環境でしか参照できないが、どうしてもフレーム版のJavadocが必要な場合は、今のところ他に方法はなさそうだ。

◆参考にしたサイト
https://www.hos.co.jp/blog/20181105/

まとめ

Java11よりAPI仕様のフレーム版が削除されてしまった。
今のところ復活の兆しはない。

ただし、フレーム版のAPI仕様を作成することは可能なので、必要な場合は自分で作成してローカル環境で参照することはできる。