Oracle Java SEの有償化に伴うOpenJDKへの切り替えの案内

Oracle Java SEの有償化について

Oracle社の方針により、商用ユーザーへのOracle Java SE 8のアップデートの無償提供が2019年1月末をもって終了しました(個人ユーザーは2020年12月末まで)。学内での利用は原則商用ユーザーに該当するため、別途Oracle社と有償サポートを締結しない限り、脆弱性が修正されたアップデート(次回アップグレードは2019年4月リリース予定)を使用できなくなります※。有償サポートを締結しない場合は、代替ソフトウェアに切り替えてください。

※ 個人ユーザー向けOracle Java SE 8は誰でも入手可能ですが、商用ユーザーが使用した場合、高額のライセンス費用を請求される可能性があります

参考: Oracle Java SE サポート・ロードマップ

商用ユーザー向けの最後の無償バージョンはJava 8 Update 201(8u201)とJava 8 Update 202(8u202)です。このバージョンは商用ユーザーであっても無償で使用し続けることができます。ただし、今後脆弱性を修正したバージョンの無償提供は行われません。最新のOracle Java SE 11を含め、2019年2月1日以降にリリースされるOracle Java SEは全て有償になります。Oracle社からダウンロードできる最新のJavaは、開発・テスト・試作・デモの目的以外には使用できません。今後、Oracle Java SEを無償で使用する方法はありません。

古いバージョンを使用し続けることは可能ですが、脆弱性の修正等が行われず、大変危険です。別途セキュリティついて担保された状態でない限り、使用してしてはいけません。

Oracle Java SEのアンインストール

これまでJavaを使用したことがあれば、Oracle Java SEがインストールされている可能性があります。Javaが必要かどうかわからない場合、そのままアンインストールしてください。Javaが必要であることがわかっている場合でも、まずはアンインストールしてから、次の項で述べる無償の代替ソフトウェアを導入してください。

Oracle Java SEアンインストール手順

Windowsの場合

Oracle社が提供するアンインストールツールを使用します。アンイストールツールは下記からダウンロードできます。

https://www.java.com/ja/download/uninstalltool.jsp

アンインストールツールを実行し、検出されたすべてのJavaをアンイストールします。

上記は一般ユーザーが使用するJRE(Java Runtime Environment)のみアンインストールします。Javaの開発を行う等の理由でJDK(Java Development Kit)をインストールしている場合は、「設定」の「アプリ」や「コントロールパネル」の「プログラムと機能」からを開き、「Java SE Development Kit ...」という名前のアプリケーションをすべて削除します。よくわからない場合は、Javaと名のつく製品をすべてアンインストールしてください。

Macの場合

下記にアンインストール手順が記載されています。JDKについてはページ内にあるリンク先を参考にしてください。

https://www.java.com/ja/download/help/mac_uninstall_java.xml

Linuxの場合

最新のLinuxディストリビューションのJavaパッケージはOracle Java SEではなくOpenJDKです。Oracle社から手動でインストールしている場合は下記を参考にアンインストールします。

https://www.java.com/ja/download/help/linux_uninstall.xml

無償の代替ソフトウェア

JDK および JRE

無償でJavaを利用し続ける場合は、オープンソースで提供されているOpenJDKを利用してください。OpenJDKのバイナリはいくつか提供されており、提供元によってサポート期限が異なります。長期間サポートを表明しているバイナリを使用してください。2019年2月時点で長期間使用可能なバージョンはJava 8とJava 11です。

以下は推奨するJavaバイナリです。

名前 JDK/JRE バージョン JVM JavaFX 配布形態
AdoptOpenJDK JDK, JRE 8, 11 HotSpot, OpenJ9 × ZIP
Amazon Corretto JDKのみ 8のみ HotSpot MSI(PATH設定なし)
Zulu JDKのみ 8, 11 HotSpot △(ZuluFX) MSI(PATH設定あり), ZIP

※ JDKはJREの機能が含まれます。また、JDK 8にはJRE 8(jreフォルダ)が含まれます。
※ Java 8またはJava 11を使用してください。Java 7以下およびJava 9、Java 10はいずれもサポートが終了しています。検証等の目的以外では使用しないでください。
※ ZuluのJDK 11は64bit版のみの提供です。32bit版は提供されていません。
※ HotSpotはサン・マイクロシステムズが開発したオリジナルのJVM、OpenJ9はIBMが開発した別実装のJVMです。
※ MSIはインストーラーであるため、実行でインストールができます。ZIPの場合は手動で展開して設置する必要があります。同じインストーラーでも、Amazon CorrettoはPATHを設定しませんが、ZuluはPATHを設定します。ZIPの場合はPATH等は手動で設定する必要があります。
※ OpenJDkのサイトで配布されるバイナリ(Oracle社提供)はサポート期間は半年しかありません。検証等の目的以外での使用を推奨しません。
※ Zuluの無償版のサポート期間は明記されていませんが、有償版のZule Enterpriseは長期サポート(LTS)になっています。
※ Linuxの場合は、Linuxディストリビューション提供のOpenJDKを使用してください。

JavaFXを使用する場合

OpenJDKにはJavaFXが含まれていません。JavaFXはオープンソースプロジェクトとしてOpenJFXとして開発されています。バイナリによってはバンドルされてるものがあります。

  • AdoptOpenJDK(非推奨):
    JavaFXは含まれていません。Java 8の場合は、ソースコンパイル等の複雑な手順が必要なため推奨しません。Java 11の場合は、[OpenJFX](https://openjfx.io/)を使用できますが、パス等は自分で設定する必要があります。
  • Amazon Corretto:
    JavaFXが含まれています。そのまま利用可能です。
    ※ "C:\Program Files\Amazon Corretto\jre8"に配置されるバイナリにはJavaFXがありません。"C:\Program Files\Amazon Corretto\jdk1.8.0_*"(JDK)または"C:\Program Files\Amazon Corretto\jdk1.8.0_*\jre"(JRE)を使用してください。。
  • Zulu:
    通常のZuluにはJavaFXが含まれていませんが、別途JavaFXをバンドルしたZuluFXが用意されています。ZuluFXをお使いください。

Linuxの場合は、Linuxディストリビューション提供のOpenJFXパッケージを使用してください。

Javaアプレットを使用する場合

※ JavaアプレットはJava 8でのみ使用可能です。Java 11では使用できません。

OpenJDKにはブラウザへのJavaプラグインが含まれていませんが、アプレットビュワーを使用できます。Javaアプレットを使用する場合は、Java 8 JDKに付属するappletviewerを使用してください。

appletviewerで学外のサイトを直接アクセスする場合はプロキシ設定が必要です。"%USERPROFILE%\.appletviewer"(appletviewerを一度実行することで作成されます)を開き、次の行を記入してください。

```
http.proxyHost=proxy.kyokyo-u.ac.jp
http.proxyPort=8080
```

LinuxディストリビューションによってはブラウザのJavaプラグインがパッケージとして提供されている場合があります。

Java Web Startを使用する場合

※ Java Web StartはJava 8でのみ使用可能です。Java 11では使用できません。

OpenJDKにはJava Web Startが含まれていません。Java Web StartはオープンソースプロジェクトとしてIcedTea-Webとして開発されています。Windows用バイナリは下記からダウンロードが可能です。

http://icedtea.wildebeest.org/download/icedtea-web-binaries/1.7.1/windows/

Linuxの場合は、Linuxディストリビューション提供のIcedTea-Webを使用してください。

アプリケーション毎の対応

JabRef

JabRefはJava 8のみサポートしており、JavaFXが必要になります。そのため、Amazon CorrettoまたはZuluFXを使用することを推奨します。すでにJabRefをインストールしており、動作しなくなった場合は、インストーラーをそのまま実行してください。既存のJabRefにそのまま上書きインストールされます。インストールはOracle Java SEは削除した状態で行ってください。Oracle Java SEがインストールされた状態では、JabRefがOracle Java SEと紐付かれてしまい、Oracle Java SEを削除した後にJabRefが起動しなくなります。

Amazon Corretto 8を使用する場合

  1. Amazon Corretto 8をダウンロードし、インストールします。
  2. JabRefのインストーラを起動します。
  3. java.exeの場所が聞かれます。「配置する」を選択し、"C:\Program Files\Amazon Corretto\jdk1.8.0_192\jre\bin\java.exe"を指定します。※ ここで「ダウンロード」を選ぶと、古いJavaがダウンロードされ、"C:\Program Files\Common Files\i4j_jres"にインストールされるため、選んではいけません。

ZuluFXを使用する場合

  1. ZuluFX 8(JabRefが未対応のため、11は使用できません)をダウンロードし、適当な場所にファイルを展開します。
  2. JabRefのインストーラを起動します。
  3. java.exeの場所が聞かれます。「配置する」を選択し、"【ZuluFXを展開したフォルダ】\jre\bin\java.exe"を指定します。※ ここで「ダウンロード」を選ぶと、古いJavaがダウンロードされ、"C:\Program Files\Common Files\i4j_jres"にインストールされるため、選んではいけません。

インストーラーで「ダウンロード」してしまった場合

"C:\Program Files\Common Files\i4j_jres"または"C:\Program Files (x86)\Common Files\i4j_jres"というフォルダーがある場合は、削除してください。次にレジストリエディター(regedit.exe)を開き、"HKEY_CURRENT_USER\Software\ej-technologies"のキーをすべて削除してください。削除後、再度インストーラーを実行してください。

EclipseおよびEclipseベースアプリケーション

Java 8のJDKをインストールした場合は、インストール先にある"jre"フォルダーをeclipse.exeがあるフォルダーにそのままコピー、または、シンボリックリンクを張ります。Eclipseは"jre"フォルダーが存在すると、自動的にそのフォルダー内のJavaを使用するようになっています。jreというフォルダー名であれば、他のJDKやJREでも構いません。Eclipseのフォルダから"jre\bin\java.exe"としてjava.exeが実行できるようにしてください。

その他のアプリケーション

ほとんどの場合、環境変数JAVA_HOMEとPATHを設定することで動作します。詳しくはそれぞれのアプリケーションのマニュアルを参考にしてください。

有償ソフトウェア

有償ソフトウェアはサポートするバージョンが厳密に決められている場合があります。開発元に問い合わせてください。なお、古いJavaのまま使用し続けることはできません。問い合わせの結果、対応が不可能の判明した場合は、ソフトウェアの買い替えを検討してください。

FAQ

  • 研究室の自分専用のパソコンであれば、個人ユーザーとして継続利用することはできますか?
    ⇒ 個人ユーザーとして認められるのは、個人のパソコンである場合や、趣味やゲームといった業務以外での目的の場合です。業務時間内に大学の経費で購入したパソコンで利用した場合は、商用ユーザーに該当すると考えられます。
  • システム内部でJavaを使用しているようですが、どうしたらいいですか?
    ⇒ システムの開発者に問い合わせてください。
  • セキュリティが担保された状態であれば使用しても良いとありますが、どのような場合ですか?
    ⇒ 次の条件すべてに当てはまる場合は、既存の脆弱性および今後発見される脆弱性に対する攻撃を防止であると判断し、古いバージョンのJavaを使用し続けても構いません。
    1.    特定のアプリケーション専用であり、OSにインストールされておらず、関連付けもされていない。Windowsの場合は下記のような状態をいう。
      1. 「アプリと機能」または「プログラムと機能」の一覧に表示されない。
      2. java.exeにPATHが通っていない。コマンドプロンプトで`java -version`とコマンドがないとエラーになる。
      3. 環境変数JAVA_HOMEが設定されていない。
      4. Java関係の拡張子(.jar、.jnlp)に対して関連付けがされていない。jarファイル、jnplファイルをダブルクリックしても起動しない。
      5. インストールされている全てのブラウザでJavaプラグインが動作しない。
    2. 古いバージョンが対応していない全ての既存の脆弱性について、以下のいずれの対応を行っている。
      • アプリケーションが利用する範囲では影響を受けない脆弱性であることが説明できる。
      • アプリケーション側で対策を行うことで、脆弱性を回避している。
      • アプリケーション側でJavaのパッチや一部の代替を用意することで、脆弱性を回避している。
      • その他、サービス利用や運用に影響がない範囲での設定等により、脆弱性を回避している。
    3. アプリケーション開発者が、今後発見される脆弱性に対して、2.であげた対応のいずれかを行えるようにアプリケーションの保守を行うことを表明している。
    4. 脆弱性が発見された場合は、2.であげた対応のいずれかを行う体制がある。
  • Javaアプリケーションの開発にOracle Java SEを使用してもいいですか?
    ⇒ 開発目的であれば、無償でOracle Java SEを使用することができます。しかし、自分で開発したアプリケーションであっても、本番環境や日常的に利用するときもOracle Java SEを使用する場合は、有償サポートを結ぶ必要があります。