ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Java Applet とは
Java Applet は、1995 年に Java 1.0 とともに登場した「ブラウザ内で Java プログラムを実行する仕組み」です。HTML 内に タグを書くと、ブラウザがクライアント側で JVM を起動して 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-2015 | Java Plug-in の脆弱性 (CVE) が大量に発覚し、ブラウザベンダが警戒 |
| 2015 | Chrome が NPAPI サポートを廃止 (Java Plug-in 使用不可) |
| 2016 | Firefox が NPAPI 廃止予告 (ESR を残し本流は終了) |
| 2017 | Oracle が Java 9 で Java Plug-in を deprecated と宣言 |
| 2018 | Java 11 で Java Plug-in / Java Web Start が完全削除 |
| 2020 | Edge (Chromium 版) も NPAPI 非対応 (Internet Explorer サポートも縮小) |
| 2022 | Internet 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 の用途 | 現代の代替 |
|---|---|
| ブラウザ内インタラクティブ UI | JavaScript / React / Vue / Svelte |
| 業務 Web 画面 | Spring Boot + フロントエンド (React/Vue) |
| デスクトップ GUI | JavaFX / 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 を学ぶ方が将来役立ちます。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?