GUI ガイド

GUI は保護タスクをウィザード形式で実行します。流れは次のとおりです。

アプリケーションの種類 → 入力・ランタイム・プラットフォーム → シンプルまたは詳細オプション → Windows EXE ランチャー (任意) → 出力確認 → 実行

1. アプリケーションの種類

GUI の選択肢入力出力対応する CLI
Java アプリケーション通常の実行可能 JAR完全なアプリケーションディレクトリjavaapp
Spring BootSpring Boot アプリケーション完全なアプリケーションディレクトリspringboot
Tomcat WARWARTomcat を組み込んだディレクトリtomcat
ライブラリ暗号化任意の JAR単一の P4JX アーカイブencode

種類を誤ると、メインクラス、依存関係、Web リソース、ランチャーが正しく処理されないことがあります。

アプリケーションの種類ページ

2. 入力・ランタイム・ターゲットプラットフォーム

ウィザード 1 回につき、入力 JAR または WAR を 1 つ処理します。続いて次を選びます。

  • Java バージョン:8、11、17、21、25 のいずれか。既定は 21 です。
  • ターゲットプラットフォーム:複数を同時に選べます。
  • モード:シンプルまたは詳細設定。
  • Windows アプリケーション EXE を生成:任意。Windows のターゲットプラットフォームを 1 つ以上選ぶ必要があります。

複数のプラットフォームを選ぶと、プラットフォームごとに個別のディレクトリが生成されます。

入力、Java バージョン、ターゲットプラットフォームのページ

3. シンプルモード

シンプルモードは、初回のパッケージングのほとんどに適しています。入力ページを離れるときに互換性スキャンが実行され、その結果から次が決まります。

  • 除外を推奨するクラス
  • JavaFX と WebView を有効にするかどうか
  • スキャナ ZIP オーバーレイを有効にするかどうか
  • .jar アーカイブサフィックスに切り替えるかどうか
  • Spring Boot のレイアウト
  • Tomcat 9 と 10.1 のどちらを使うか

スキャン結果は静的解析にもとづく推奨であり、実際に動かしたテストの結果ではありません。パッケージング後は必ずターゲットプラットフォームで動作を確認してください。

4. 詳細設定モード

詳細設定モードでは、アーカイブサフィックスの指定、JIT を無効にするかどうかの判断、スキャナオーバーレイの追加、JVM オプションの設定、除外ルールの定義、アプリケーションの種類ごとの固有オプションの設定ができます。

詳しい操作、各オプションの意味、既定値、種類ごとの違いは Protector4J 詳細設定モードを参照してください。

通常の Java アプリケーションの詳細オプション

5. Windows EXE ランチャー

入力ページで Windows アプリケーション EXE を生成 (x64/x86/ARM64) にチェックを入れると、オプションページのあとにランチャーページが追加されます。このチェックボックスはシンプルモードと詳細設定モードの分岐より前にあるため、どちらのモードでも EXE を生成できます。チェックしない場合は、そのまま出力確認ページに進みます。

ランチャーページでは次を設定できます。

  • EXE ファイル名:空欄なら入力ファイル名を使います。Tomcat では tomcat になります。
  • ランチャーモード:コンソール、またはコンソールウィンドウを表示しない GUI。
  • Windows アイコン:任意の .ico ファイル。
  • JVM スタートアップオプション:1 行に 1 つ。EXE を有効にすると入力欄はこのページにのみ表示され、入力した内容は EXE と起動スクリプトの両方に書き込まれます。
  • Windows バージョン情報:ファイルバージョン、製品バージョン、会社名、製品名、ファイルの説明、著作権表示。

ライブラリ暗号化はアーカイブを 1 つ出力するだけなので、このオプションはありません。詳細は Windows EXE ランチャーの生成を参照してください。

6. 除外ルール

GUI と CLI で同じ書き方を使います。

com.example.SecretService   このクラスのみ
com.example.service.*       このパッケージのみ
com.example.service.**      このパッケージとすべてのサブパッケージ

DTO、エンティティ、コントローラー、設定クラス、JNI ブリッジクラス、実行時にバイトコード拡張が必要なクラスを除外すると、中核となる業務ロジックだけを保護できます。

7. 出力確認

最後のページには次が表示されます。

  • 入力ファイルとアプリケーションの種類
  • Java バージョンとターゲットプラットフォーム
  • JavaFX を有効にしているかどうか
  • アーカイブ形式、JIT 設定、オーバーレイ、Spring のレイアウト
  • 保護範囲、除外ルール、Tomcat のコンテキストパス

新しいフォルダを作成するにチェックを入れると、出力ディレクトリの中に一意の名前を持つ p4jx-xxxx サブディレクトリを作ってそこに書き込みます。既存の Tomcat パッケージにアプリケーションを追加する場合は、既存のディレクトリを直接指定する必要があるため、この項目は使えません。

出力確認とオプションのサマリー

8. タスクファイルのエクスポートと読み込み

詳細オプションページと最終確認ページのどちらからでも、手動で編集できる p4j-task.yml タスクファイルをエクスポートできます。タスクファイルには、確定済みの設定が記録されます。

  • 入力、アプリケーションの種類、出力の設定
  • Java バージョンと 1 つ以上のターゲットプラットフォーム
  • 保護範囲、互換性、パッケージングのオプション

ファイル内のコメントには、p4j --task-file <ファイル> の呼び出し方と、それに相当するコマンドラインの書き方が併記されます。アカウントのメールアドレスとパスワードはタスクファイルに書き込まれません。実行時に正式なアカウント情報を渡さない場合は、試用版が生成されます。

ウィンドウ上部のタスクファイルを読み込むを使うと、YAML を読み直してタスクを復元し、最終確認ページに直接移動できます。旧バージョンがエクスポートした p4j-encrypt-run.sh.bat も引き続き読み込めますが、GUI は実行スクリプトをエクスポートしなくなりました。