LoginSignup
1
1

More than 1 year has passed since last update.

M1,M2(ARM)のMacBookでOracle SQL Developerをエラーゼロで動かす

Last updated at Posted at 2022-10-22

M1,M2 MacでもSQL Developerは快適に動かせる

Oracle SQL Developerは無料で使えるOracle専用のDatabaseのIDEです。

単純なSQLクライアントに比べて、たくさんの機能が搭載されています。そのため、動作はやや重めです。しかしその分、少ないクリックとキー操作で複雑なデータベース関連タスクを実行できます。

  • 踏み台経由のデータベース接続設定を保存
  • クエリを書かずにオブジェクトを作成
  • オブジェクト情報とその関連性を視覚的に表示

などなど、少し踏み込んでOracleを扱う上で欠かせないツールになっています。

クラウドネイティブに基準が移りつつある世の中で、新しいアーキテクチャでOracleを採用することは以前と比べると少なくなりました。

ですが、たとえばレガシーなオンプレミス環境をクラウド環境へ移行する場合、最新のM1,M2 MacBookでOracleに向き合わなければならないこともあるでしょう。

ARM用のJavaが入れば問題なく動く

Oracle SQL Developerには各プラットフォーム(Windows, Mac, Linux)のためのアプリケーションが用意されています。

Javaを使って動作するため端末に別途JDK(Java Development Kit)のインストールが必要になりますが、Javaがあれば特に苦労なく動きます。

最新のMacBook ProやMacBook Airに搭載されたM1,M2チップは「ARM(aarch64)アーキテクチャ」が採用されています。M1チップが出始めた頃は、ARMアーキテクチャでJava8またはJava11を準備して動作させるのに一手間が必要でした。現在は公式が準備してくれているので、手順がだいぶ楽になりました。

ここから先は、公式の手順にできる限り則ってインストールして動作させる手順を書いていきます。

ただし、JDKインストールだけではJavaFxのエラーが発生します。そのため、エラーゼロで動かすために別途対応が必要です。

AzulなどJavaFxがバンドルされた非公式JDKをインストールしてエラーを回避する方法もあります。この記事では、すべてOracleのサイトからダウンロードしてインストールする手順で説明しています。

動作確認環境について

この記事では以下のバージョンで動作確認しています。執筆時の最新のバージョンです。

Oracle SQL Developer

バージョン
21.2.1.204.1703
更新日
2021年8月11日

Java SE Development Kit

バージョン
11.0.17
更新日
2022年10月18日

SQL DeveloperとJDKのインストール

まずはインストール手順を説明していきます。

Oracle SQL Developerのインストール

まずはOracle SQL DeveloperをダウンロードしてMacbookでインストールします。

プラットフォームが「Mac OSX」の最新版をダウンロードしてインストールしてください。

Oracle SQL Developer - Mac OSXの最新版をダウンロード

ダウンロードのためにはOracleプロファイルへのサインインが必要です。プロファイル(アカウント)を持っていない場合は、必要事項を記入してサインアップしてください。

まだ、このタイミングではOracle SQL Developerを起動できません。

SQL Developerを起動すると「Java8またはJava11がインストールされていないので起動できない」というエラーメッセージが表示されます。

Java11のインストール

以下へアクセスしてJava11(JDK11)をインストールします。

ここで「Arm 64 DMG Installer」を選んでダウンロードします。

Java11 SDK - Arm 64 DMG Installerをダウンロード

この手順でインストールを行えば、特に設定変更せずともSQL DeveloperがJava11を見つけてくれるので起動が成功します。

インストールされたJDKは以下の場所に格納されています。MacBookにデフォルトで入っているJDKと同じ場所に入ります。

# pwd
/Library/Java/JavaVirtualMachines
# ls -lt
total 0
drwxr-xr-x 3 root wheel 96 10 22 12:48 jdk-11.0.17.jdk
drwxr-xr-x 3 root wheel 96  5  5  2020 jdk-14.0.1.jdk

JavaFXのエラーを解決する

ただし、このままでは起動時に以下のエラーが発生します。

Problem initializing the JavaFX runtime. This feature requires JavaFX.

SQL Developerが「ようこそページ」を表示するときにJavaFXが必要で、それが見つけられずエラーになっています。

Problem initializing the JavaFX runtime. This feature requires JavaFX.

実用においてそれほど害はありませんが、起動のたびにエラーポップアップを毎回閉じるのは面倒なので対処します。

ようこそページが表示されないように設定を書き換える

JavaFXを開発で使うわけではないため、エラーがでないように対処するだけでも十分です。起動時に「ようこそページ」が表示されないよう設定変更すれば、毎回エラーポップアップを閉じる面倒な手間は無くなります。

手順はこちらのstackoverflowを参考にしています。

JavaFXをインストールして設定する場合

JavaFXはJavaでGUIアプリケーションを作成するためのフレームワークです。OpenJavaFXサイトから「aarch64」のJava11(JDK11)に対応したJavaFXのをインストールして、SQL Developerに読み込ませることでエラーを回避できる可能性があります。ただ、記事作成時点ではARM(aarch64)対応のJavaFX 11はダウンロードができませんでした。なお、JavaFXがARM(aarch64)に対応したのも2021年末頃で、比較的最近の出来事です。

設定ファイルの場所を探す

まず、SQL Developerの設定ファイル dtcache.xml の場所を探します。インストールしたバージョンによって数値が異なるので find コマンドを使います。

# find ~/.sqldeveloper/ -name dtcache.xml
/Users/xxxxx/.sqldeveloper//system21.2.1.204.1703/o.ide.12.2.1.5.42.210420.1713/dtcache.xml

設定を書き換える

このファイルを開いて oracle.help.StartPageEditor のキー項目(Key)があるかどうかを確認します。ある場合は、設定値(Value)を false に変更します。

<Key>oracle.help.StartPageEditor:TabCheckboxState:Default</Key>
<Value class="java.lang.Boolean">false</Value>

このキー項目が見つからない場合は、上記のキー項目と設定値アイテムタグ(Item)で囲って、そのまま追加します。

</dt-cache> の直前に以下を追加します。

<dt-cache>
  <!-- 記載を省略 -->
  <Item>
    <Key>oracle.help.StartPageEditor:TabCheckboxState:Default</Key>
    <Value class="java.lang.Boolean">false</Value>
  </Item>
</dt-cache>

注意点として、xmlファイルはSQL Developerが起動されていない状態で書き換えてください。起動されていると、SQL Developerを停止した際に設定が上書きされて元に戻ってしまいます。

Oracle SQL Developerが起動することを確認

これでSQL Developerを起動してもようこそページが表示されなくなります。

SQL Developerのようこそページが表示されなくなる

説明は以上です。

M1,M2 MacBookで快適なSQL Developer生活をお過ごしください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1