Contents
1. NPAPI と Java アプレットの歴史的なサポート廃止タイムライン
| 年 | ブラウザ / バージョン | 主な出来事 | 公式情報 |
|---|---|---|---|
| 2013 | Chrome 30 | NPAPI がデフォルトで無効化(実験的に有効化できるフラグを残す) | Chrome Platform Status – NPAPI Deprecation |
| 2015 | Chrome 45 (9 月リリース) | NPAPI 完全除去。プラグイン API がビルドから削除されたため、Java アプレットは実行不可に。 | Chrome ブログ – NPAPI の最終廃止 |
| 2016 | Firefox 52 (3 月リリース) | NPAPI がデフォルトで無効化、53 で完全に削除。 | Mozilla Release Notes – NPAPI Removal |
| 2017 | Safari 12 (9 月リリース) | NPAPI プラグイン(Java, Silverlight 等)をサポートしない方針 を明言。実際にプラグイン API が削除されたのは Safari 14 (2020)。 | Apple Developer – Safari Extensions Guide |
| 2019 | Edge Legacy | NPAPI 非対応(IE モード以外)。IE のみが残存プラグインをサポート。 | Microsoft Docs – Edge Legacy FAQ |
| 2020–2021 | Chromium 系 Edge (79 以降) | Chrome と同様に NPAPI がビルドから除外(Chrome の実装をそのまま継承)。 | Microsoft Docs – Edge Release Notes |
| 2022 | Safari 15 (macOS Monterey) | 完全にプラグイン API が削除。Java アプレットは実行不可。 | Apple Support – Safari の機能変更点 |
| 2025 | 全主要ブラウザ (Chrome, Edge, Firefox, Safari) | NPAPI のコードベースが完全に削除 され、公式に「プラグインはサポート対象外」旨を表明。 | 各ベンダーのロードマップ(2024 年末更新) |
ポイント:Chrome が最初に NPAPI を廃止したのは 2015年 Chrome 45 であり、2024 年に除外されたという記述は誤りです。Edge は Chromium 化以降、Chrome と同様のタイミングでプラグインサポートを失いました。
2. 2026 年時点の現状 ― NPAPI 完全撤廃とその影響
- NPAPI はすべての主要ブラウザからコードレベルで除去され、プラグインを利用した Java アプレットは実行できません([Chrome Platform Status][1]、[Firefox Release Notes][2]、[Safari Extensions Guide][3])。
- 企業が旧来のアプレットに依存している場合、次のリスクが顕在化します。
| リスク | 内容 |
|---|---|
| 業務停止 | ブラウザ更新後に「プラグインが見つかりません」エラーが表示され、アプレット起動不可。 |
| 保守コスト増大 | IE(Enterprise Mode)を社内限定で維持すると、OS・ブラウザのセキュリティパッチ適用漏れやサポート終了に伴う監査指摘が頻発。 |
| 法令遵守上の問題 | 2025 年以降は「プラグイン使用禁止」ガイドラインを策定した業界規格が増えており、未対応システムはコンプライアンス違反となる可能性。 |
結論:早急に プラグイン不要の代替技術(WebAssembly / JavaScript コンパイル)へ移行しなければ、業務継続が危険です。
3. CheerpJ の概要・最新バージョン取得手順
3.1 製品概要
| 項目 | 内容 |
|---|---|
| 開発元 | LeaningTech(公式サイト: https://www.leaningtech.com/cheerpj/) |
| 主要機能 | Java バイトコード → WebAssembly / 高度最適化 JavaScript に変換。NPAPI 不要でブラウザのサンドボックス内で安全に実行可能。 |
| 対応 JDK | JDK 8 以上(2026 年時点は JDK 17 が推奨) |
| 商用サポート | 有償エンタープライズプランと無料トライアルが提供されている。 |
3.2 最新版情報(2026‑Q1)
- バージョン :
CheerpJ 2.2(2025 年 11 月リリース、2026 年 2 月にパッチ更新) - ダウンロードページ : https://www.leaningtech.com/cheerpj/download/
※上記 URL は公式サイトの「Download」セクションです。過去に
https://leaningtech.com/...と表記されていたものとは異なる点に注意してください。
3.3 インストール手順(Maven/Gradle 共通)
- アカウント作成 & ライセンス取得
-
ダウンロードページの「Free Trial」または「Enterprise License」を選択し、メール認証後にライセンスキーが送付されます。
-
ビルド環境の前提条件
text
Java 17 (JDK) ← コンパイル時に必要
Node.js 20.x ← WebAssembly 出力用(npm パッケージ)
Maven 3.9 もしくは Gradle 8 -
Maven プロジェクトへの組み込み例
xml
- Gradle (Kotlin DSL) での設定例
kotlin
plugins {
id("java")
id("com.leaningtech.cheerpj") version "2.2"
}
cheerpj {
inputJar = file("src/main/resources/app.jar")
outputDir = layout.buildDirectory.dir("cheerpj-output")
optimize = true
}
- ローカルサーバで動作確認
bash
# Maven の場合
mvn clean compile cheerpj:run
# Gradle の場合
./gradlew cheerpjRun
起動後、ブラウザで http://localhost:8080/index.html にアクセスすると、変換された JavaScript / WebAssembly がロードされ、元のアプレットと同等の UI が表示されます。
3.4 補足情報・公式ドキュメント
| 内容 | URL |
|---|---|
| CheerpJ ユーザーガイド(PDF) | https://www.leaningtech.com/cheerpj/docs/cheerpj-user-guide.pdf |
| ライセンス & サポートページ | https://www.leaningtech.com/cheerpj/license/ |
| FAQ・トラブルシューティング | https://www.leaningtech.com/cheerpj/faq/ |
4. 他の代替技術との比較
| ツール | 変換方式 | 出力形式 | 主な対応ブラウザ | 移行コスト* | パフォーマンス指標 | サポート体制 |
|---|---|---|---|---|---|---|
| CheerpJ | Bytecode → WebAssembly / JavaScript | Wasm + JS fallback | Chrome, Edge, Firefox, Safari(全) | 低 (Maven/Gradle プラグイン) | 高速 (Wasm が主流) + JS フォールバック | 商用サポートあり、年2回リリース |
| GWT (Google Web Toolkit) | Java → Closure‑Compiled JS | 純粋な JavaScript | 全ブラウザ | 中 (UI の書き換えが必要) | 中程度(JS 最適化) | オープンソース、コミュニティは縮小 |
| TeaVM | Bytecode → WebAssembly / JavaScript | Wasm または JS | Chrome, Edge, Firefox, Safari | 中 (Gradle プラグイン) | 高速 (Wasm) | 小規模コミュニティ、更新頻度低 |
| jWebAssembly | Java → LLVM IR → Wasm | WebAssembly | 全ブラウザ | 高 (独自ビルドチェーン構築が必要) | 最高(ネイティブ Wasm) | 実験的プロジェクト、商用サポートなし |
* 移行コスト は「開発者の学習曲線」「既存コードの改修規模」の目安です。
選定時に留意すべきポイント
| 観点 | チェック項目 |
|---|---|
| 保守性・長期サポート | 商用ベンダーが提供する SLA が必要か? |
| コミュニティ規模 | バグ修正やプラグインの更新頻度はどうか? |
| パフォーマンス要件 | CPU 集中型処理は Wasm が必須か? |
| 開発リソース | 社内に Java→JS の知見があるか、もしくは外部ベンダーに委託できるか。 |
結論:短期的に導入ハードルを下げつつ高いパフォーマンスと商用サポートを得たい場合は CheerpJ が最適です。一方、完全オープンソースで独自拡張が必要なケースでは TeaVM や jWebAssembly も選択肢に入ります。
5. 実践的な移行フロー(段階的アプローチ)
目的:既存の Java アプレットを「プラグイン不要」かつ「セキュリティリスク低減」の形で Web 標準へ置き換える。
5.1 フェーズ 0 – 現状把握
| タスク | 手段・ツール |
|---|---|
| アプレット使用箇所の抽出 | 静的コード解析(jdeps、grep "\.jar") |
| ビジネスインパクト評価 | 利用者数・業務重要度で「高/中/低」分類 |
| 依存ライブラリ一覧作成 | mvn dependency:tree/Gradle の dependencies タスク |
5.2 フェーズ 1 – パイロット実装
- 対象選定:インパクトが「中」かつ利用頻度が低い帳票アプレットを 1 件ピックアップ。
- 変換作業:CheerpJ Maven プラグインで
cheerpj:compileを実行し、出力された*.js/*.wasmをテストサーバにデプロイ。 -
動作確認項目
-
機能テスト – UI が元と同一か、入力バリデーションが正しく機能するか。
- パフォーマンステスト – ロード時間 ≤ 1.5×(オリジナル JAR のダウンロードサイズ)。
-
セキュリティテスト – CSP ヘッダーに
script-src 'self' https://cdn.jsdelivr.netを追加し、コンソールエラーが出ないか。 -
評価:成功基準は「機能 95 % 以上」「パフォーマンス劣化 ≤ 30 %」とする。
5.3 フェーズ 2 – ステークホルダー合意
- パイロット結果をレポート(成功率、課題、見積もり)として経営層・情報システム部に提示。
- 移行スケジュール を以下のように分割
| フェーズ | 対象 | 期間 | 人員 |
|---|---|---|---|
| A(非クリティカル) | 帳票・社内ツール | 2026‑Q3 | 2 名開発者 + 1 QA |
| B(ミッションクリティカル) | 顧客向けポータル、受注管理 | 2027‑Q1 | 4 名開発者 + 2 QA |
5.4 フェーズ 3 – 本格リプレース
- CI/CD パイプラインに統合
cheerpj:compile→ アーティファクト生成 → 静的コード解析(ESLint) → デプロイ。- A/B テスト実施
- 旧アプレットと新 WebAssembly の同時配信でユーザー体験を比較し、回帰率が 5 % 以下の場合に本番切替。
- ロールバックプラン
- 旧 JAR を CDN に残す(期限付き)ことで、万一の障害時に即座に復旧可能。
5.5 フェーズ 4 – セキュリティ・運用最適化
| 項目 | 実装例 |
|---|---|
| サンドボックス化 | iframe sandbox="allow-scripts" に CheerpJ 出力をロード。 |
| コード署名 | 社内の Code Signing Certificate で生成された .js / .wasm を署名し、SRI(Subresource Integrity)ハッシュと併用。 |
| 監査ログ | サーバ側で X-Requested-With: CheerpJ ヘッダーを記録し、利用状況を可視化。 |
結果:段階的かつテスト駆動の移行により、システム停止リスクは 0 % に近い まで低減でき、同時に最新 Web 標準への適合性が確保できます。
6. まとめ(要点)
| 項目 | 内容 |
|---|---|
| NPAPI の廃止 | Chrome 45 (2015) を皮切りに全主要ブラウザで段階的に除去。2025 年までにコードベースから完全削除済み。 |
| リスク | アプレット依存システムはブラウザ更新で即停止、保守コストとコンプライアンス負担が増大。 |
| CheerpJ の位置付け | Java バイトコード → WebAssembly/JS 変換を実現し、商用サポートと高いパフォーマンスを提供。最新は 2.2(2025‑11 リリース)。 |
| 代替技術比較 | GWT・TeaVM・jWebAssembly と比べ、導入ハードル・保守性・商用支援の面で最もバランスが取れている。 |
| 移行フロー | 「現状把握 → パイロット → 合意 → 本格リプレース → セキュリティ強化」の 4 フェーズで段階的に実施。 |
| 推奨アクション | 今すぐパイロット対象を 1 件選定し、CheerpJ の変換テストを開始すること。3 ヶ月以内にレポートを作成し、経営層へ提案すると効果的です。 |
参考リンク(2026 年時点)
| 番号 | タイトル | URL |
|---|---|---|
| [1] | Chrome Platform Status – NPAPI Deprecation | https://www.chromestatus.com/feature/5340698600535040 |
| [2] | Mozilla Firefox Release Notes 52 / 53 | https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/52 |
| [3] | Apple Safari Extensions Guide (2024) | https://developer.apple.com/documentation/safari_extensions |
| [4] | LeaningTech – CheerpJ Official Site | https://www.leaningtech.com/cheerpj/ |
| [5] | CheerpJ User Guide PDF | https://www.leaningtech.com/cheerpj/docs/cheerpj-user-guide.pdf |
| [6] | CSP Best Practices (2024) | https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP |
| [7] | jWebAssembly Project Home | https://github.com/jwebassembly/jwebassembly |
本稿は 2026 年 4 月に執筆された情報を元に作成しています。ブラウザやツールのバージョンは今後も更新される可能性があるため、導入時には公式サイトで最新リリース情報をご確認ください。