プロジェクト

全般

プロフィール

JDK 11

はじめに

Java SE(Java Platform, Standard Edition)の開発・実行環境であるJDK(Java Development Kit)は、これまで旧Sun Microsystems社とこれを吸収合併したOracle社によって無償提供されてきました。しかし、JDK 11からは無償提供がなくなると言われています。

これは、Oracleから提供されるJDKがバージョン11から次のように無償版と有償版が別に提供されるようになったと理解すればよいでしょう。

  • Oracle JDK
    従来からSun MicrosystemsおよびOracleから提供されているJDK。従来は無償で提供され、有償で技術サポートが提供されていたが、JDK 11からは有償で技術サポート込みの提供となる。ライセンスはBCL。4半期毎のセキュリティアップデートおよび3年毎にバージョンアップが行われる。
  • OpenJDK(バイナリ)
    従来はソース公開であったOpenJDKがバイナリを無償提供する。Oracleの技術サポートはない。ライセンスはGPL v.2 + Classpath例外。半年毎にバージョンアップされる。4半期毎のセキュリティアップデートは現在リリースされているバージョンについてのみ行われる。これまでOracle JDKに含まれ、OpenJDKには含まれていなかったJava Flight Recorder等の商用機能もOpenJDKに含まれる。

Oracle JDKは、3年毎のバージョンアップなので、Java SE 11(2018年9月)の次は、Java SE 17(2021年9月)となるのではと思われます。
OpenJDKは、半年毎のバージョンアップなので、Java SE 11の次は、Java SE 12(2019年3月)、Java SE 13(2019年9月)、Java SE 14(2020年3月)、・・・と半年毎にバージョンアップがあると思われます。各バージョンアップに新機能が追加されて(Deprecatedの削除も)いきます。

Oracle JDKについては、開発・テスト・試作・デモ用途では無償で使える予定とのことです。
https://www.oracle.com/technetwork/jp/java/eol-135779-ja.html

Oracle以外のJDK 11

次のページに、オープンソースのOpenJDKをビルドしてバイナリを提供、また、技術サポートを行う組織とその配布物についてまとめています。

Oracle JDK 11のインストール

入手

Oracle Technology NetworkサイトにあるJava SEダウンロードページから入手できます。
https://www.oracle.com/technetwork/java/javase/downloads/index.html

インストール(Windows)

インストーラーを実行します。

OracleJDK11_install-01.png

OracleJDK11_install-02.png

OracleJDK11_install-03.png

OracleJDK11_install-04.png

インストールディレクトリ

デフォルトでは C:\Program Files\Java\jdk-11.0.1 ディレクトリ下にJDKをインストールします。

C:\Program Files\Java\jdk-11.0.1
  +-- bin
  |     +-- *.dll, *.exe 
  |     +-- server
  |           +-- jvm.dll
  +-- conf
  |     +-- logging.properties
  |     +-- net.properties
  |     +-- sound.properties
  |     +-- management
  |     |     +-- jmxremote.access
  |     |     +-- jmxremote.password.template
  |     |     +-- management.properties
  |     +-- security
  |           +-- java.policy
  |           +-- java.security
  |           +-- policy
  |                 +-- limited
  |                 |     +-- default_local.policy
  |                 |     +-- default_us_export.policy
  |                 |     +-- export_local.policy
  |                 +-- unlimited
  |                       +-- default_local.policy
  |                       +-- default_us_export.policy
  +-- include
  |     +-- classfile_constants.h
  |     +-- jawt.h
  |     +-- jdwpTransport.h
  |     +-- jni.h
  |     +-- jvmti.h
  |     +-- jvmticmlr.h
  |     +-- win32
  |           +-- jawt_md.h
  |           +-- jni_md.h
  |           +-- bridge
  |                 +-- AccessBridgeCallbacks.h
  |                 +-- AccessBridgeCalls.h
  |                 +-- AccessBridgePackages.h
  +-- jmods
  |     +-- java.*.jmod
  |     +-- jdk.*.jmod
  +-- legal
  |     +-- ...
  +-- lib
        +-- classlist
        +-- ct.sym
        +-- fontconfig.bfc
        +-- fontconfig.properties.src
        +-- jawt.lib
        +-- jrt-fs.jar
        +-- jvm.cfg
        +-- jvm.lib
        +-- modules
        +-- psfont.properties.ja
        +-- psfontj2d.properties
        +-- src.zip
        +-- tzdb.dat
        +-- tzmappings
        +-- jfr
        |     +-- default.jfc
        |     +-- profile.jfc
        +-- security
        |     +-- blacklisted.certs
        |     +-- certs
        |     +-- default.policy
        |     +-- public_suffix_list.dat
        +-- server
              +-- Xusage.txt

binディレクトリ下にあるコマンド(exeファイル)は次となります。

jabswitch               javaw              jlink            kinst
jaccessinspector        jcmd               jmap             klist
jaccesswalker           jconsole           jmod             ktab
jatoc                   jdb                jps              pack200
jar                     jdeprscan          jrunscript       rmic
jarsigner               jdeps              jshell           rmid
java                    jhsdb              jstack           rmiregistry
javac                   jimage             jstat            serialver
javadoc                 jinfo              jstatd           unpack200
javap                   jjs                keytool            

アプレット関係、CORBA関係、JavaFX関係、Java Web Start関係、JAXB関係、JAX-WS関係のコマンドが削除されています。

Oracle OpenJDK 11のインストール

入手

OracleがビルドしたOpenJDK 11の配布サイトは次です。3ヶ月毎にセキュリティアップデートが入ると提供されるOpenJDK 11のバージョンもアップデートされています。
https://jdk.java.net/11/

インストール(Windows)

OpenJDK はインストーラーは付いておらず、zipをインストールしたい場所へ展開します。
展開した内容(ディレクトリ構造)は、Oracle JDK 11と同一です。

新機能

Javaソースファイルを直に実行

JDK 11では、ソースファイルをjavaコマンドで直接実行できるようになります。

$ ls
Hello.java
$ java Hello.java
Hello, world!
$


ほぼ5年前に更新