ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Java Applet とは
Java Applet は、1995 年に Java 1.0 とともに登場した「ブラウザ内で Java プログラムを実行する仕組み」です。HTML 内に <applet> タグを書くと、ブラウザがクライアント側で JVM を起動して Java のコードを動かしました。
<!-- 当時の典型的な使い方 (1990 年代〜2000 年代前半) -->
<applet code="HelloApplet.class" width="300" height="200">
あなたのブラウザは Java をサポートしていません。
</applet>
<!-- HTML 4 / 5 では object タグも使われた -->
<object type="application/x-java-applet" width="300" height="200">
<param name="code" value="HelloApplet.class">
</object>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 で削除されました。
<!-- 旧来の JNLP (もう使えない) -->
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://example.com/app">
<information>
<title>My App</title>
<vendor>ACME Inc.</vendor>
</information>
<resources>
<j2se version="1.6+"/>
<jar href="MyApp.jar" main="true"/>
</resources>
<application-desc main-class="com.example.Main"/>
</jnlp>
代替として 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 に変換してブラウザで実行できます。商用利用は要ライセンス。
<!-- CheerpJ で旧 Applet をブラウザ復活させる例 -->
<script src="https://cjrtnc.leaningtech.com/3.0/cj3loader.js"></script>
<script>
cheerpjInit();
cheerpjCreateDisplay(800, 600);
cheerpjRunJar("/app/HelloApplet.jar");
</script>
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
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- 【django】ログイン 認証機能 2026-09-08 03:22:09
- MySQL ERROR 1063 Incorrect column specifier for column|原因と直し方 2026-09-08 03:11:09
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- Wi-Fi とは|規格と世代(Wi-Fi 4〜7)・周波数帯・CSMA/CA・WPA3 NEW 2026-09-07 07:45:13
- set コマンドでシェルオプションと位置パラメータを操作 | bash 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- UE5 Get Overlapping Actorsで特定クラスだけ処理|Class Filter・Cast To 2026-09-07 07:45:13
- Linuxで特定拡張子のファイルを再帰削除|find -deleteの安全手順 2026-09-07 07:45:13
- Django CBVでテンプレートに値を渡す|get_context_data・extra_context 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
- Linux catコマンドの使い方|行番号表示・複数ファイル連結 2026-09-07 07:45:13
- unable to execute 'gcc': No such file or directory 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?