基本情報技術者 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

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

