この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:4
ページ更新者:T
更新日時:2026-06-11 07:07:02

タイトル: Applet(アプレット)
SEOタイトル: Java Applet とは — 廃止された技術と現代の代替(JavaFX / Spring Boot / WebAssembly)

この記事の要点
  • Java Applet は HTML の タグでブラウザ内に Java を埋め込む 1995 年からの技術
  • 2017 年に Oracle が Java Plug-in を廃止、主要ブラウザも NPAPI を削除済 → 現代の Web ブラウザでは動かない
  • 代替の Java Web Start も Java 11 (2018) で廃止
  • デスクトップ用途は JavaFX / Swing、Web 用途は Spring Boot + フロントエンド分離
  • Applet コードを救済するなら JavaFX への移植 または CheerpJ / TeaVM で WebAssembly 化

Java Applet とは

Java Applet は、1995 年に Java 1.0 とともに登場した「ブラウザ内で Java プログラムを実行する仕組み」です。HTML 内に タグを書くと、ブラウザがクライアント側で JVM を起動して Java のコードを動かしました。



  あなたのブラウザは Java をサポートしていません。




  
import java.applet.Applet;
import java.awt.Graphics;

public class HelloApplet extends Applet {
    public void paint(Graphics g) {
        g.drawString("Hello Applet World", 50, 50);
    }
}
// javac HelloApplet.java で生成した .class をブラウザが読み込む

Swing が使える JApplet もありました:

import javax.swing.JApplet;
import javax.swing.JLabel;

public class HelloJApplet extends JApplet {
    public void init() {
        add(new JLabel("Hello, Swing Applet"));
    }
}

なぜ廃止されたのか

時期出来事
2013-2015Java Plug-in の脆弱性 (CVE) が大量に発覚し、ブラウザベンダが警戒
2015Chrome が NPAPI サポートを廃止 (Java Plug-in 使用不可)
2016Firefox が NPAPI 廃止予告 (ESR を残し本流は終了)
2017Oracle が Java 9 で Java Plug-in を deprecated と宣言
2018Java 11 で Java Plug-in / Java Web Start が完全削除
2020Edge (Chromium 版) も NPAPI 非対応 (Internet Explorer サポートも縮小)
2022Internet Explorer 11 廃止 (Microsoft が IE をサポート終了)

主な廃止理由:

  • セキュリティ: サンドボックスをすり抜ける脆弱性が多発、PC ウイルスの主要侵入経路に
  • NPAPI 終焉: モダンブラウザは古いプラグイン規格を排除
  • JavaScript の進化: HTML5 / Canvas / WebGL で Applet のできることは置き換え可能に
  • モバイル非対応: スマートフォンのブラウザでは元々 Applet が動かない

Java Web Start も廃止

ブラウザ廃止後の代替として「JNLP ファイルをクリックで Java アプリを起動する」 Java Web Start (JWS) が用意されていましたが、これも Java 11 で削除されました。




  
    My App
    ACME Inc.
  
  
    
    
  
  

代替として OpenWebStart という OSS プロジェクトはありますが、新規採用は推奨されません。

現代における代替手段

旧 Applet の用途現代の代替
ブラウザ内インタラクティブ UIJavaScript / React / Vue / Svelte
業務 Web 画面Spring Boot + フロントエンド (React/Vue)
デスクトップ GUIJavaFX / Swing / SWT
クロスプラットフォーム実行jpackage で .exe / .dmg 配布、または Electron
3D / グラフィックWebGL / Three.js / WebGPU
Java コードを Web で動かしたいCheerpJ (Applet を WebAssembly 化) / TeaVM

JavaFX への移行例

Applet を JavaFX デスクトップアプリに置き換える簡単な例:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class HelloFx extends Application {
    @Override
    public void start(Stage stage) {
        Label label = new Label("Hello JavaFX");
        Scene scene = new Scene(new StackPane(label), 300, 200);
        stage.setScene(scene);
        stage.setTitle("Migrated from Applet");
        stage.show();
    }

    public static void main(String[] args) { launch(args); }
}
// jpackage で .exe / .app / .deb として配布可能

CheerpJ — Applet を WebAssembly で動かす

レガシー Applet をどうしてもブラウザで動かしたい場合、Leaning Technologies 社の CheerpJ が使えます。Applet の JAR を WebAssembly に変換してブラウザで実行できます。商用利用は要ライセンス。



FAQ

Q: Internet Explorer なら Applet が今でも動く?
A: 動きません。IE 自体が 2022 年にサポート終了済。Windows 11 では起動すらできません。

Q: 自治体・銀行で Applet を使い続けている事例があるが?
A: 専用ブラウザや OpenWebStart で延命しているケースがありますが、セキュリティリスクが大きく早期移行が必要です。多くの公共システムが 2020 年前後に置き換えを完了しています。

Q: 学習目的で Applet を書きたい
A: 教育用途なら Java 8 + 旧 Eclipse で appletviewer を使う方法がありますが、現代の入門としてはJavaFX や Swing を学ぶ方が将来役立ちます。