αバージョンとβバージョンの違い

Java言語の開発キットの新しいバージョンについて説明しましょう。


Java言語でアプレットを開発するために、Appletを始めとする さまざまなクラスのパッケージが用意されていました。 これらのパッケージは、JDK(Java Developers' Kit) と呼ばれます。 「Java言語の開発キット」という意味です。

1995年の末に、この JDKのβバージョンがリリースされました。 (これに対して従来のものをαバージョンと呼びます。) Java言語そのものが変わったわけではありませんが、 アプレットの作り方に変更が加わったわけです。 事実上は、言語の仕様が変わったと考えてください。
βバージョンも正確に言えばまだ試験段階のものです。 しかし今後の正式な製品となる JDK は、ほとんどこのβバージョンが 基になると考えていいでしょう。 したがって、今までαバージョンで開発したアプレットのプログラムも、 βバージョンに合わせて手直しする必要があります。

まず、βバージョンで変更された主要な点を挙げておきましょう。

  1. パッケージの構成が大幅に変わりました。 新たに追加されたパッケージやクラスが多数あります。
  2. Appletクラスは Panelクラスの拡張になっています。 この結果 Appletの内部にボタンやテキスト入力アイテムなど (これらを awtコンポーネントと言います) を自由に利用できるようになりました。
  3. Image を操作するパッケージが独立して大幅に強化されました。 Jpegの画像にも対応しています。 ただし Imageの取り扱いが多少複雑になり、 処理のタイミングなどで注意すべき点があります。
  4. その他のクラスでも仕様が変更されたものが多数あります。
  5. 関数の名前や仕様でわかりにくかったものが変更されています。
  6. 新しい機能を追加するため、関数の引数の個数や順番が 変わっているものが多数あります。
  7. コンパイル時のエラー・チェックがより厳密になりました。 「例外処理」をきちんと記述しないと受け付けられない場合があります。
  8. セキュリティの機能が強化されました。 それに伴い、今までは可能だったローカルのマシンのシステムへの アクセスの手段が制限されるようになっています。

βバージョンのアプレットを作る上で、 特に重要となるのは、 2,awtコンポーネントの利用、 3,Imageの取り扱い、 でしょう。これらについては別に詳しく説明します。
関数名などの変更については、 αからβへの移行法 としてまとめて扱います。
「例外処理」 についても今まで触れる機会がなかったので説明しましょう。

これ以外にもαとβでは、非常に重要な違いがあります。 それは、ブラウザの側の対応と HTMLの中での記述 です。

αバージョンのアプレットは HotJava で見ることができました。 βバージョンもアプレットを見るために、 新しい HotJava が提供されるのが当然なのですが、 実はβバージョンのための HotJavaは事情があって存在しません。
Sun はこれ以上 HotJava を (そしてαバージョンのアプレットも)サポートする気はないようです。 その代わり、Netscape 社と手を結び、 Netscape の次のバージョンである Netscape 2.0 に Javaの機能を組み込むことになりました。 Netscape 2.0 は現在(1996年1月)βバージョンとして提供されています。 (JDK も Netscape 2.0 も 「βバージョン」の段階にあるのは、全くの偶然ではないでしょうが、 元々は別のプロジェクトだったはずです。)
したがって、βバージョンのアプレットを使ったページは、 Netscape 2.0 でないと見ることはできません。 ただし、Netscape 2.0 のβバージョンは、まだ動作が不安定です。 アプレットを常に効率良く走らせることができるとは限りません。 またアプレットのコードを直した時に、そのリロードが 思うようにできないようです。 この不備を補うために、JDKには AppletViewer という アプレットだけを表示する専用のビューワが提供されています。 アプレットの開発を行っている最中にはこちらを利用した方が いいでしょう。 (ただし AppletViewer はページ全体は表示できません。 アプレットが完成し、実際にページに組み込んだら、 今度は Netscape 2.0 で見ることになります。)

まとめ
JDK αバージョン JDK βバージョン
ブラウザ HotJava Netscape 2.0
または
AppletViewer
アプレットのタグ <APP> <APPLET>