基本情報技術者 2010年 春期 午前(科目A) 問07
問題文
Java VM が稼働している環境だけがあれば,Web ブラウザや Web サーバがなくても動作するプログラムはどれか。
選択肢
ア:JavaScript
イ:Java アプリケーション(正解)
ウ:Java アプレット
エ:Java サーブレット
🔒 解説は解答すると表示されます
Javaアプリケーション【午前解説】
正解の理由
正解は イ(Java アプリケーション)です。
Java アプリケーションはクラスに
Java アプリケーションはクラスに
public static void main(String[] args) を持ち、JVM(と JRE)があれば単独で起動して実行できます。対して選択肢の他はホスト環境に依存します。アプレットはブラウザや専用ビューア、サーブレットはサーブレットコンテナ/Web サーバ上で動作し、JavaScript は通常ブラウザの JS エンジンや Node.js 等が必要です。解法ステップ
- 問題文を読み「Web ブラウザや Web サーバがなくても」といった条件を確認する。
- 各選択肢の典型的な実行環境を思い出す(ブラウザ、サーバ、JVM 単独など)。
- 「JVM 単独」で動作するものを絞り込む(main を持つアプリケーション)。
- 依存関係がある選択肢(アプレット、サーブレット、通常の JavaScript)を除外する。
- 残った Java アプリケーションを正解とする。
選択肢別の誤答解説
- ア: JavaScript
- 誤り。通常は Web ブラウザ(または Node.js 等の実行環境)の JavaScript エンジンが必要で、JVM 単体では実行されません(ただし特殊な JS エンジンを JVM 上で動かすケースは例外的)。
- イ: Java アプリケーション
- 正解。
mainメソッドを持つ Java プログラムは JVM(JRE)があれば単独で起動・実行できます(例:java -jar myapp.jar)。
- 正解。
- ウ: Java アプレット
- 誤り。アプレットはブラウザ上または appletviewer のような宿主が必要で、ブラウザや専用ビューアなしに単独の JVM で動作する想定ではありません。近年はセキュリティやサポート終了により廃れている技術です。
- エ: Java サーブレット
- 誤り。サーブレットはサーブレットコンテナ(Tomcat など)や Web サーバ上で動作するコンポーネントで、単独の JVM 環境のみではリクエスト受付・ライフサイクル管理ができません。
よくある誤解
- 「Java と JavaScript は同じ」:名前が似ているため混同しやすいですが別物で実行環境も異なります。
- 「アプレットは単独で動く」:かつてはブラウザのプラグインや appletviewer が必要で、単体の JVM 起動では通常動作しません。
- 「JavaScript は JVM 上で動く」:一部の JS エンジン(Rhino/Nashorn 等)を通じて JVM 上で動かせる例はありますが、設問で想定される一般的環境ではブラウザや Node.js 等が必要です。
補足コラム
- JVM、JRE、JDK の関係:JVM は Java バイトコードを実行する仮想マシン、JRE は JVM と標準ライブラリを含む実行環境、JDK は開発ツールを含む開発キットです。
- Java アプリケーションの起動例:
java -jar アプリ名.jarやjava パッケージ名.Mainでmainが呼ばれます。 - アプレットやプラグイン技術は近年廃止傾向にあり、Web では代替として JavaScript や WebAssembly が主流になっています。
- 特記事項:Rhino や Nashorn のように Java 上で JavaScript を実行するエンジンも存在しましたが、設問が想定する「Web ブラウザや Web サーバがなくても動作するか」という観点では一般的な解釈に従って判断します。
FAQ
Q1. Java アプレットと Java アプリケーションの最大の違いは何ですか?
A1. アプレットはブラウザや専用宿主の中で動作し、ライフサイクルや権限制御が宿主に依存します。アプリケーションは
A1. アプレットはブラウザや専用宿主の中で動作し、ライフサイクルや権限制御が宿主に依存します。アプリケーションは
main を起点に JVM 上で単独実行されます。Q2. サーブレットはどこで動きますか?
A2. サーブレットはサーブレットコンテナ(Tomcat、Jetty、GlassFish など)内で動き、HTTP リクエストを受けて処理するために Web サーバの機能を利用します。
A2. サーブレットはサーブレットコンテナ(Tomcat、Jetty、GlassFish など)内で動き、HTTP リクエストを受けて処理するために Web サーバの機能を利用します。
Q3. JavaScript は JVM で動きますか?
A3. 基本的にはブラウザや Node.js 上で動きます。JVM 上で動く特殊な JS エンジンも存在しましたが、一般的な意味では JVM 単体で動くとは考えません。
A3. 基本的にはブラウザや Node.js 上で動きます。JVM 上で動く特殊な JS エンジンも存在しましたが、一般的な意味では JVM 単体で動くとは考えません。
関連キーワード: Java、JVM、JRE、Java アプリケーション、Java アプレット、サーブレット、Web ブラウザ、サーブレットコンテナ、JavaScript、実行環境、main メソッド、Tomcat

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

