Oracle SQL DeveloperのJDKを変更してみよう
はじめに
本記事では、Oracle SQL DeveloperのJDKをMicrosoft Build Open JDKに変更する方法を解説します。Oracle JDKのライセンスリスクを回避し、安全に環境を最適化するための手順をステップバイステップで示します。
なんでOracle JDKを使えないの?
厳密には現在もOracle JDKはNTFCの下、無償で利用できます。ただし、短期間で有償ライセンスに切り替わる仕掛けになっています。開発中は無償で利用できたJDKも運用開始時には最新のLTSに変更しない限り、無償で使えないという事態が生じます。
しかも、「利用者数に応じた」ライセンスの購入ではなくJava SE Universal Subscriptionにしたがい「全社員分」のライセンスを購入する必要があります。そこには、外注、コンサルなどなど、「企業活動で関係するほぼ全員の人数」ベースのライセンスになります。Javaを利用する、しないは関係ありません。
これにはいくつかの例外があります。
- すでにライセンスを購入済み
- Oracle製品の運用に必要なJDKは対象外。
2.が曲者で、たとえばOracle Universal Installer で利用するJDKはライセンス無く使うことができます。しかし、目的外の利用ではライセンス費を支払う必要があるのです。
PCにJDKが入っている!よっしゃこれ使ったろう。と「誰かが使った瞬間」全員分のライセンス購入する義務が生じる可能性があります。
この「特別にJDKのライセンス購入なしで使える製品」にOracle SQL Developer も含まれます。
直接ライセンス違反をしているわけではないものの、誤って使ってしまった場合に備えてOracle JDKの利用は控えようとなるわけです。李下に冠を正さずってやつですね。
SQL Developerが利用するJDKを変更する。
Oracle JDK を利用しない方針は決まった。しかし、他のJDK を利用しようにも切り替え方も、確認方法も分からない。。という人があまりに多すぎる・・・マジかよ。
というわけで、JDKの切替手順をまとめます。
前提
No. | 製品名 | 入手元 | インストールディレクトリ(記事上) | 備考 |
---|---|---|---|---|
1 | Oracle SQL Developer | ここから入手 | E:\dev\workspace\change_jdk\sqldeveloper | Windows 64-bit with JDK 17 includedを利用 |
2 | Micorsoft Build Open JDK | winget install --id Microsoft.OpenJDK.17でインストール | C:\Program Files\Microsoft\jdk-17.0.5.8-hotspot | |
3 | Visual VM | ここから入手 | E:\dev\workspace\change_jdk\visualvm | 稼動中のJDKのバージョン確認に利用 |
visual studioを起動
E:\dev\workspace\change_jdk\visualvm\visualvm.exe を起動
SQL Developerを起動
E:\dev\workspace\change_jdk\sqldeveloper\sqldeveloper.exeを起動
visual VMで確認すると同梱版のOracle JDKが利用されていることがわかる。
確認後、SQL Developerを停止する。
SQL Devloperの設定を変更する
エクスプローラを開きアドレスバーに「%APPDATA%\sqldeveloper1」を入力する
バージョンのフォルダを開き、そこに配置されているproduct.confをnotepadで開く。
設定ファイルに以下の記述を追加
# SetJavaHome /path/jdk
SetJavaHome C:\Program Files\Microsoft\jdk-17.0.5.8-hotspot
SQL Developerを起動し、Visual VMでJavaのバージョンを確認する。
MicrosoftのJDKに変更できていることを確認する。
まとめ
- Oracle JDKのライセンスには注意が必要だよ
- Oracle SQL Developerの利用するJDKも他のディストリビュータの提供品に変更することが可能だよ
- 確認にはVisual VMを使うと便利だよ。
-
このディレクトリは初回起動時に作成されるため、存在しない場合はSQL Developerを一度起動する必要がある。 ↩