質問: Java8 Java9などと言いますが、それらを抽象的に述べる語は何ですか? JVM Specificationで調べるとJVMのバイトコード仕様等が出てきます。 JavaSEで調べるとAPIだと出てきます。Javaプログラム上から利用できるパッケージやクラスが定義されています。 しかし、例えばJava9でJigsawが実装されましたが、JigsawはAPIではありませんよね?Java SEという語はJigsawを含めれないと思います。 では、Java8などと言った時のAPI以外も含めた仕様全体を指す語は、抽象的には何ですか?
回答: どうやらオラクルはそれをJava SEと呼んでいるようです。 私の疑問への答えは「Java SE」です。 日本語圏でJava SEで検索すると「APIである」という説明が出てきます。 例えばwikipediaにこうあります。 >Java Platform, Standard Edition または Java SE(バージョン5.0までは Java 2 Platform, Standard Edition または J2SEと呼ばれていた)は多くのJavaプラットフォームプログラムで役立つJava APIの集合体である。 Qiitaの記事「Javaを始めた頃によくある疑問。Java SEって何?JDKとJREえ?」はこう説明しています。 >Java SEとかって何なの?これすなわちAPIのこと。 しかし、英語圏のwikipediaではこう定義されています。 >Java SE defines a range of general-purpose APIs—such as Java APIs for the Java Class Library—and also includes the Java Language Specification and the Java Virtual Machine Specification.[2] Java SEという語はAPIだけではありません。恐らく各バージョンのJavaの全体仕様を指す語です。