JAVAプログラミング講座
宇宙のJAVAさん
心を入れ替えて初心に戻る編
JAVAとは何ぞや?
〜コマンドラインからiアプリまで〜
ども! 爆裂健です。 今回は初心に戻って
JAVAとはなにか?
そしていろいろな種類のJAVAプログラムを紹介しようとおもいま〜す!
お相手は、最近人気絶好調の エボリューダー・くま さん!
やっと復活したか、爆裂健よ・・・
そんな訳で、心を入れ替えた
爆裂健 と、
私、エボリューダー・くまが今回のJAVA講座をお送りします。
では、キーワード、その1
Write One, Run Anywhere (一度プログラムを書けば、どこでも動く)
さて、そもそもJAVAって何でしょうね〜? それって、うまいのか?
JAVA とは米国サンマイクロシステムズが作ったプログラム言語です。
その特徴のひとつに、 Write One, Run Anywhere があります。
ほほう!?
普通Windows用に書かれたプログラムは、他のOSでは動きません。
Windowsの なんとか.EXE プログラムは、当然マックやPC-UNIXでは動かないわけです。
ところが、JAVA言語でプログラムを作った後コンパイルすると、「JAVAバイトコード」と呼ばれるまったく機種依存しないプログラム(.classファイル)を作り出します。
JAVAソースファイル (sample.java)
↓コンパイル
JAVAバイトコード (sample.class)
このバイトコードを
JavaVM上で動かすことにより、あらゆるOSで同じプログラムが動作するのです。
JAVA VM ?
おいおい、結局全部私が説明していないか?
貴様は何の為に存在しているのだ?
「夢」のためさ・・・
JavaVM (JAVA Virtual Machine)
JAVAバイトコードは、JAVA
Virtual Machine (以下 JavaVM)上で動作します。
Windowsユーザーは、Windows用のJavaVM、
Macユーザーは、Mac用のJavaVM、
LINUXユーザーは、LINUX用のJavaVM、
ETC・・・
と言った具合に利用しているOS専用のJavaVMを用意すれば、機種を問わず同じJAVAバイトコードが動作します。

このように Windows
でJAVAプログラムが動作します。
で、おなじJAVAプログラム(JAVAバイトコード)がMACでも動作して・・・

UNIX でもOKです。 JavaVM
さえ用意されていれば、OSは問いません。
Windowsで動作したJAVAプログラム(JAVAバイトコード)は、他のOSでも動作します。
このようにして、JAVA言語は「あらゆる所で動作する」という特徴を実現しています。
JAVA Applet (JAVAアプレット)
JAVAを一躍有名にしたものの1つに、JAVAアプレットがあります。
JAVAアプレット??? どっかで聞いたような・・・
JAVAアプレットはWWWブラウザ上で動作するJAVAプログラムです。
そうだった、そうだった!
・・・
このコーナーに貴様いらないんじゃないか?
無駄にページが縦長になるだけのような気が・・・
なんか、僕もそんな気がしてきたな・・・
これ(下)がJAVAアプレットです。
このホームページを見ているあなたのWWWブラウザが、JAVAに対応していたら
JAVAアプレット上でマウスを動かしてみてください。
文字がマウス座標を追います。
「え? 私は
JavaVM をOSに入れた覚えが無いけど、なぜ JAVAが動くの?」
という疑問があるとおもいますが、答えは簡単です。
アプレットを動かすための JavaVM は、WWWブラウザが持っているのです。
よってWWWブラウザ上でJAVAアプレットプログラムが走ります。
JAVAアプレットはその性質上、セキュリティに関してさまざまな制約があります。
主な制限に次のようなものがあります。
(1)JAVAアプレットが動作しているマシンのレジストリ、メモリ、HD、FDなどの資産にアクセスできない。
ホームページを見に行ったら悪のJAVAアプレットが動作し、自分HDのデータが消されるようなことを防ぐためです。
(2) JAVAアプレットが置いてあるサーバマシンとしか、ネットワーク通信ができない。
しかも、TCP/IP通信のみ。UDP通信はアプレットからは使えなせん。
私のホームページで公開しているゲームは、JAVAアプレットです。
ですから、JAVA対応のWWWブラウザがあればどんなOSでもゲーム動くのです。
JAVA Application (JAVA アプリケーション)
JAVAアプリケーションは、通常のGUIプログラム(Window型表示プログラム)です。
アプレットのような制限はありません。
他の言語同様の、通常のプログラムです。
使う JavaVM によって、若干デザインが変わりますが機能はまったく一緒のものがあらゆるOSで動きます。
下の画面は
Microsoft Windows 上で動かしたサンプルプログラムです。
動作画面イメージ(Windowsでの動作画面)
<動作方法>
上記の SampleFrame.lzh をダウンロードして、適当なフォルダに展開します。
コマンドラインから、
>java SampleFrame
でプログラムが起動します。
ここでの java というのが、JavaVMです。
(Windowsの場合は java.exe)
JDKというJAVA開発ツールに付属しています。(JDKをインストされていないと java.exe はありません)
でも Windows OS は、最初から jview という名前の JavaVM が付属しています。
Windows OS をご利用の方は、コマンドラインから
>jview SampleFrame
でも、プログラムが動作します。
JAVA Servlet (JAVA サーブレット)
WWWサーバ上で動作するJAVAのCGIプログラムを
JAVA Servlet といいます。
JavaVM が動作するWWWサーバ(JAVA Servlet対応サーバ)上で、動作します。
Tomcat というWWWサーバが有名です。
Perl
や ネイティブコードのCGIに比べると、以下の特徴があります。
(1)JavaVM上で動作するので、ミスったコードを書いてもOSに影響が出ずに安心。
(2)JavaVM上に常駐動作しているので、CGIの立ち上がりが高速。
(3)JavaVM上に常駐動作しているので、変数のデータが初期化される残っている。
(4)「JAVAアプレット」と「JAVAサーブレット」でCGIプログラムを作ると、サーバクライアントJAVA三昧でプログラムが楽。
動作画面 (JAVA Servlet(CGI)プログラムをブラウザで表示)

<動作方法>
JAVA Servlet対応のWWWサーバを立ち上げ、所定のパスにSevletプログラムを置きます。
で、 ブラウザでWWWサーバにアクセス。
今後流行りそうな予感なJAVAです。
サープレット対応のWWWサーバ(httpサーバ)の普及が待ち遠しい・・・
コマンドラインプログラム
別にGUI(Window型表示プログラム)にこだわることはありません。
JAVAでもコマンドラインプログラムが作れます。
0から9までの数字を表示するしょぼいプログラムです。
実行すると、以下のとおり。
ははは・・・
iアプリ (Docomo 503i プログラム)
NTT
DoCoMo 503i にも JavaVM が載っていて、JAVAプログラムが動作します。
503i用の JAVAプログラムは「iアプリ」と呼ばれているみたいです。
これはどのOSでも動くというわけではなく、503i専用のプログラムになってしまいます。
その点では、JAVAの本道からちょっと外れますね・・・
iアプリプログラミングの基本的なやり方は、JAVAアプレットとほぼ一緒です。
だた、メモリ量や使える関数などの制限がとても多いです。
俺って、503iはおろか携帯すら持ってないよ・・・
た、たす、たすけ・・・
貧乏人はほっといて、話を進めましょう。
下がサンプルプログラムの動作画面です。
動作画面(エミュレータにて)

<動作方法>
WWWサーバに展開したSampleiApp.lzhファイルの中身をサーバにアップします。
Docomo 503iで SampleiApp.html を開き、iアプリをダウンロードします。
多分動くはずです・・・(笑)
上下左右キーで、私が
100x100 の広大なマップを縦横無尽に移動します。
JAVA講座「RPG見たいな物を作ろう」のiモード版です。
DoCoMo
503i をお持ちの方は、http://birdynet.com/bakuretuken/i/ に携帯でアクセスしてみてください。
上のiアプリがダウンロードできます。 ここです。
まぁ、これで「JAVAとはJAVAなんだよ!
コーナー」は終了です。
最初とタイトル変わってないか?