プロジェクト

全般

プロフィール

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のバイナリを生成・提供・技術サポートを行う企業があります。

  • Zulu
    https://www.azul.com/downloads/zulu/
    Azul Systems社がOpenJDKソースから独自にビルドし、無償提供および有償での技術サポート提供を行っている。
  • AdoptOpenJDK
    https://adoptopenjdk.net
    AdoptOpenJDKファウンデーションがOpenJDKソースから独自にビルドし、無償提供している。IBM等の企業が複数スポンサーとなっている。

インストール(Oracle JDK 11)

入手

T.B.D.

インストール(Windows)

インストーラーを実行すると、デフォルトでは C:\Program Files\Java\jdk-11 ディレクトリ下にJDKをインストールします。

C:\Program Files\Java\jdk-11
  +-- 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関係のコマンドが削除されています。

新機能

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

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

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

クリップボードから画像を追加 (サイズの上限: 1 GB)