Oracle OpenJDK15でOWASP ZAPが起動しない

『体系的に学ぶ 安全なWebアプリケーションの作り方 第2版』では、OWASP ZAPというアプリを使って学習を進めていきます。
インストールしたあと、ZAP.exeをダブルクリックしても起動しないことがありました。

原因と対処方法をまとめておきます。

OWASP ZAP

OWASP ZAPとは、フリー(Apache 2.0)のWebアプリケーション脆弱性診断ツールのこと。
Javaで作成されており、実行するにはJREが必要となります。

下記サイトからダウンロードできます。

HTTPリクエスト・レスポンスを取得して確認したり、セッションを操作したり、諸々おこなうことができます。

ZAP.exeから起動できない

本題です。

実行環境

先に実施した環境について記載しておきます。

コマンドプロンプトjava --verisonを実行すると以下のように出力結果が得られました。

openjdk version "15.0.1" 2020-10-20
OpenJDK Runtime Environment (build 15.0.1+9-18)
OpenJDK 64-Bit Server VM (build 15.0.1+9-18, mixed mode, sharing)

エラー発生

OWASP ZAPをインストールすると、デスクトップにZAP.exeのショートカットが作成されるのでダブルクリックします。
すると、以下のようなエラーが発生しました。

起動エラー

バージョン1.8.0のJREが必要とのことですが、使っているPCにはJDK15を入れてあるため問題ないはずです。

原因

調べたところそこそこ知られている問題らしく、GitHubのissueや記事を見つけることができました。

内容としては、ZAPを起動するにはJavaSoft(Oracle) registry keysを設定しないといけないようです。

JavaSoft(Oracle) registry keys

Oracle JDKで使用しているレジストリ・キーのことらしい。

Microsoft WindowsプラットフォームでのJDKおよびJREのインストール によると以下のレジストリ・キーのことのようです。

HKEY_LOCAL_MACHINE\Software\JavaSoft\JRE HKEY_LOCAL_MACHINE\Software\JavaSoft\JRE\<version> HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Web Start\

Oracle OpenJDKでは設定されないようです。

レジストリエディタを開いて(Win + Rでregeditを入力)、確認したところ私の環境では設定されていませんでした。

exeから起動するときはWindowsの機能を利用するため、レジストリ・キーが設定されていないとダメということかもしれません。

解決策

AdoptOpenJDKをインストールする

OpenJDKにはいくつかのディストリビューションがあります。AdoptOpenJDKはその中のひとつになります。

AdoptOpenJDKではインストール時にJavaSoft(Oracle) registry keysを書き換えることができるようです。

以下のような記事を見つけました。

この方法ではせっかくインストールしたOracle OpenJDKをやめて、AdoptOpenJDKをインストールすることになります。もったいなかったので、次の方法を実行しました。

batファイルを作成する

ZAP.exeをダブルクリックで起動するのではなく、jarから起動するbatファイルを作成して起動します。

ZAPをインストールしたフォルダ(例: C:\Program Files\OWASP\Zed Attack Proxy)に以下のようなbatファイルを作成します。

このbatファイルをダブルクリックすることで、ZAPを起動することができるようになりました。

batファイルのショートカットをデスクトップに配置してあげれば使いやすいでしょう。