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アプレット上でマウスを動かしてみてください。

文字がマウス座標を追います。

ソースファイル SampleApplet.java

ダウンロード SampleApplet.lzh

 

エボグマ 「え? 私は 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.java

ダウンロード SampleFrame.lzh

 

<動作方法>

上記の 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)プログラムをブラウザで表示)

ソースファイル SampleServlet.java

ダウンロード SampleServlet.lzh

 

<動作方法>

JAVA Servlet対応のWWWサーバを立ち上げ、所定のパスにSevletプログラムを置きます。
で、 ブラウザでWWWサーバにアクセス。

爆裂健 今後流行りそうな予感なJAVAです。
サープレット対応のWWWサーバ(httpサーバ)の普及が待ち遠しい・・・


コマンドラインプログラム


エボグマ 別にGUI(Window型表示プログラム)にこだわることはありません。
JAVAでもコマンドラインプログラムが作れます。

ソースファイル Sample.java

0から9までの数字を表示するしょぼいプログラムです。
実行すると、以下のとおり。

爆裂健 ははは・・・


iアプリ (Docomo 503i プログラム)


エボグマ NTT DoCoMo 503i にも JavaVM が載っていて、JAVAプログラムが動作します。
503i用の JAVAプログラムは「iアプリ」と呼ばれているみたいです。
これはどのOSでも動くというわけではなく、503i専用のプログラムになってしまいます。
その点では、JAVAの本道からちょっと外れますね・・・

エボグマ iアプリプログラミングの基本的なやり方は、JAVAアプレットとほぼ一緒です。
だた、メモリ量や使える関数などの制限がとても多いです。

爆裂健 俺って、503iはおろか携帯すら持ってないよ・・・
た、たす、たすけ・・・

エボグマ 貧乏人はほっといて、話を進めましょう。
下がサンプルプログラムの動作画面です。


動作画面(エミュレータにて)

ソースファイル SampleiApp.java

ダウンロード SampleiApp.lzh

 

<動作方法>

WWWサーバに展開したSampleiApp.lzhファイルの中身をサーバにアップします。
Docomo 503iで SampleiApp.html を開き、iアプリをダウンロードします。
多分動くはずです・・・(笑)

エボグマ 上下左右キーで、私が 100x100 の広大なマップを縦横無尽に移動します。
JAVA講座「RPG見たいな物を作ろう」のiモード版です。

爆裂健 DoCoMo 503i をお持ちの方は、http://birdynet.com/bakuretuken/i/ に携帯でアクセスしてみてください。
上のiアプリがダウンロードできます。 ここです。

爆裂健 まぁ、これでJAVAとはJAVAなんだよ! コーナーは終了です。

エボグマ 最初とタイトル変わってないか?


戻る