Java 3Dをインストールしましょう

■Java 3Dに必要なもの

まずハードウエアとしては、以下のOSが動作する Intel系CPUを搭載したIBM PC/AT 互換機があれば十分です。

SPARC CPUを搭載したSun SPARC Stationとその互換機、 MIPS CPUを搭載したsgi IRIXワークステーション、 HP PA-RISC CPUを搭載したHP-9000ワークステーションでも動作します。

ソフトウエアとしてはOpenGL 1.1以上、Java 2 SDK 1.2以上、 Java 3D 1.1以上などが必要です。
すべて無償ダウンロード可能です。
(Windows 版の Java 3DにはDirect Xで稼動するバージョンもあります。 ただしこちらは本書執筆時点では正式版がまだありません。 本書ではOpenGL版のJava 3Dを取り上げます)

ハードウエア IBM PC/AT Sun WorkStation sgi IRIX Workstation HP-9000
CPU Intel x86 SPARC MIPS PA-RISC
OS Linux (glibc2.1.2) Windows 95/98 NT4.0/2000 Solaris IRIX HP-UX
グラフィックス OpenGL 1.1 ×
Mesa 3.x × × × × ×
Direct X 6.1 × × × × ×
JDK JDK 1.2.x JDK 1.2.x, 1.3.x JDK 1.2.1 JDK 1.2.2
Java 3D Java 3D 1.1.1 Java 3D 1.1.x, 1.2.x Java 3D 1.1.1 Java 3D 1.1.2

■■ハードウエアとOS

Java 3Dは本書執筆時点では次のハードウエアで動作します。

sgi IRIX, HP-UXでのJava 2、 Java 3Dについては下記を参照してください。

http://www.sgi.com/developers/devtools/languages/java.html

http://www.unixsolutions.hp.com/products/java/3D112rnotes.html

■■OS

■■OpenGL1.1

OSR2.0よりも前のWindows 95には OpenGL 1.1 が含まれていないため、別途 OpenGL 1.1 が必要です。
Windows 95用のOpenGL 1.1は下記からダウンロードできます。

ftp://ftp.microsoft.com/Softlib/MSLFILES/OPENGL95.EXE

OSR2.0以降のWindows 95やWindows 98には最初から OpenGL 1.1 が含まれています。

■■Mesa 3.x

Linux用のJava 3DはOpenGL互換のグラフィックスAPIであるMesa 3.xで動作します。

Mesaに関しては下記URLを参照してください。

http://www.mesa3d.org/

LinuxへのMesa 3.xのインストールは後に詳しく解説します。

■■DirectX 6.1

Java 3Dには、OpenGL ではなく DiretX で動作するバージョンもあります。
だたし本書執筆時点ではDirectX版はまだ正式版が公開されていません。 本書はすべてOpenGL版を元に執筆しています。
Direct Xで動作するJava 3Dを入手するには、 SunのJDC (Java Developer's Connection)に加入する必要があります。
加入は無料です。下記ページから参加申し込みができます。

http://developer.java.sun.com/

■■Java 2 SDK 1.3

Java 3DはJava 2 SDK 1.2以降で動作します。
本書執筆時点での最新バージョンは1.3.0 RC1です。
Java 2 SDK 1.3のダウンロード情報は下記ページを参照してください。

http://java.sun.com/products/jdk/1.3/

j2sdk130.png

著者がダウンロードしたのは下記のファイル名とファイルサイズのものです。

j2sdk1_3_0rc1-win.exe 30,847,507バイト

■■Java 3D 1.2

本書執筆時点でのJava 3D の最新バージョンは1.2 Beta1です。
Java 3D 1.2のダウンロード情報は下記ページを参照してください。

http://java.sun.com/products/java-media/3D/

j3dhome.png

著者がダウンロードしたのは下記のファイル名とファイルサイズのものです。

java3d1_2beta1-win-opengl_sdk.exe 3,822,563バイト

■■APIドキュメント(Java 2、Java 3D)

Java 2 APIドキュメントのダウンロード情報は 下記ページを参照してください。

http://java.sun.com/products/jdk/1.3/

著者がダウンロードしたのは下記のファイル名とファイルサイズのものです。

j2sdk1_3_0rc1-doc.zip 22,181,946バイト

Java 3D APIドキュメントのダウンロード情報は下記を参照してください。

http://java.sun.com/products/java-media/3D/

著者がダウンロードしたのは下記のファイル名とファイルサイズのものです。

java3d1_2beta1-doc.zip 1,340,871バイト

Java 3D言語仕様は下記からダウンロードできます。

http://java.sun.com/products/java-media/3D/j3dguide.zip (HTML版 zipファイル)

著者がダウンロードしたのは以下のファイル名とファイルサイズのものです。

j3dguide.zip 490,169バイト

■■その他のソフト(エディター、ブラウザー)

コンパイラーなどのほかに、Javaのソース・コードを編集するためのエディターが必要になります。
著者は主に秀丸エディタVer. 3.0と、Java開発用のマクロJMaker.macを使用しています。
著者はJava開発用のマクロが充実していること、軽くてカスタマイズが容易なエディターであることなどから秀丸エディタを使用しています。
秀丸エディタは下記からダウンロードできます。

http://hidemaru.xaxon.co.jp/

JMaker.macは下記からダウンロードできます。

http://hidemaru.xaxon.co.jp/library/macro.html

著者はまだ使用していませんが、UNIX環境で定評のあるエディターEmacs、その多国語対応版であるMuleなどで動作するJava開発環境にJDE (Java Development Environment fo Emacs)があります。
UNIX版のMuleは、Linuxの配布パッケージにはほとんど収録されていると思います。
Windows版のMuleであるMule for Win32は下記からダウンロードできます。

http://www.vector.co.jp/soft/win95/writing/se021927.html

また、Mule for Win32から発展したエディターであるMeadow Win32は下記からダウンロードできます。

http://www.vector.co.jp/soft/win95/writing/se068653.html

JDEは下記からダウンロードできます。

http://sunsite.auc.dk/jde/

Windows環境でJDEのインストール、使用方法については、下記Webページに情報があります。

OpenGL1.1のインストール(OSR2よりも前のWindows95のみ)

OSR2.0より前のWidows 95にはOpenGL 1.1が付属しません。
(OSRとはOEM Releaseの略です。PCメーカー向けにOEM出荷されたバージョンを意味します)
では、OSR2.0より前か後かどのように見分けるのでしょうか。

Windows 95のタスクバーの[スタート]-[コントロール パネル]-[システム]を表示してください。
Windows 95のバージョン番号が4.00.950 BであればOSR2.0以降です。
バージョン番号4.00.950または4.00.950 aのものはOSR2.0以前のバージョンです。

繰り返しますが、OSR2.0以降のバージョンのWindows 95にはOpenGL 1.1が含まれているので、OpenGL 1.1のインストールは必要ありません。
以下のインストールは、バージョン番号4.00.950 a以前のWindows 95にのみ行ってください。

■■[インストール手順]

まず、opengl95.exeを作業用ディレクトリーで実行します。
ここでは、C:\tempをカレントディレクトリーにして実行しました。

[MS-DOSプロンプト]を開いて、以下のコマンドを入力してください。

C:\WINDOWS>cd \temp

C:\temp>opengl95.exe

C:\tempには下記のファイルが展開されます。

C:\temp>dir

ドライブ C: のボリュームラベルは WINDOWS95
ボリュームシリアル番号は xxxx-xxxx
ディレクトリは C:\temp
. <DIR>99-04-1216:12.
..<DIR>99-04-1216:12..
README TXT 4,78896-08-0912:03README.TXT
GLU32 DLL 139,71296-07-2912:09GLU32.DLL
OPENGL32 DLL 733,29696-07-2912:11OPENGL32.DLL
GL H 68,39296-05-2218:52GL.H
GLAUX H 12,02496-02-09 9:42GLAUX.H
GLU H 18,28296-05-1715:35GLU.H
GLAUX LIB1,093,95896-07-1615:41GLAUX.LIB
GLU32 LIB 49,51496-06-1215:37GLU32.LIB
OPENGL32 LIB 336,27496-07-1615:33OPENGL32.LIB
9 個2,456,240バイトのファイルがあります

この中のREADME.TXTを良く読んでください。

展開されたファイルのうち、以下の2ファイルをWindowsのシステムディレクトリーにコピーします。

glu32.dll
opengl32.dll

Windows 95のディレクトリーがC:\WINDOWSである場合は以下のようになります。

C:\temp>copy opengl32.dll C:\WINDOWS\SYSTEM
C:\temp>copy glu32.dll C:\WINDOWS\SYSTEM

正常にコピーできたかどうか、dirコマンドで確認してみましょう。

C:\WINDOWS\SYSTEM>dir opengl32.dll

ドライブ C: のボリュームラベルは WINDOWS95
ボリュームシリアル番号は xxxx-xxxx
ディレクトリは C:\WINDOWS\SYSTEM
OPENGL32DLL733,29696-07-2912:11OPENGL32.DLL
1 個733,296バイトのファイルがあります

C:\WINDOWS\SYSTEM>dir glu32.dll

ドライブ C: のボリュームラベルは WINDOWS95
ボリュームシリアル番号は xxxx-xxxx
ディレクトリは C:\WINDOWS\SYSTEM
GLU32DLL139,71296-07-2912:09GLU32.DLL
1 個139,712バイトのファイルがあります

コピーが完了したらWindows 95を再起動してください。

■■[OpenGL 1.1の動作確認]

最初に、下記のファイルがWindowsのシステムディレクトリーに正常にコピーされたことを確認してください。

C:\WINDOWS\SYSTEM>dir opengl32.dll
C:\WINDOWS\SYSTEM>dir glu32.dll

OpenGL 1.1の動作確認は、OpenGLを使用したプログラムを実行してみるのが良いでしょう。
ここでは、Microsoftから公開されているOpenGLのサンプルプログラムを使ってみます。

ftp://ftp.microsoft.com/Softlib/MSLFILES/OGLFIX.EXE

注意) oglfix.exeファイルの中には、古いバージョンのopengl32.dll, glu32.dllが含まれています。
Java 3DはOpenGL 1.1でなければ動作しないため、oglfix.exeの中のopengl32.dll, glu32.dllは使用しないでください。

ここでは安全のため、新たに作業用のディレクトリーを作ってoglfix.exeを展開します。
oglfix.exeC:\downloadにダウンロードしたものとします。

C:\>md ogltemp
C:\>cd ogltemp
C:\ogltemp>c:\download\oglfix.exe

C:\ogltempには下記のファイルが展開されます。

C:\ogltemp>dir

ドライブ C: のボリュームラベルは WINDOWS95
ボリュームシリアル番号は xxxx-xxxx
ディレクトリは C:\ogltemp
. <DIR> 99-04-1216:12 .
.. <DIR> 99-04-1216:12 ..
README TXT 3,578 96-01-3013:09 README.TXT
GLU32 DLL 156,128 95-08-2313:02 GLU32.DLL
OPENGL32 DLL 558,464 95-12-1323:18 OPENGL32.DLL
GL H 58,061 95-04-1713:36 GL.H
GLAUX H 11,944 95-04-1713:36 GLAUX.H
GLU H 16,325 95-04-2610:16 GLU.H
GLAUX LIB 1,254,160 95-08-1416:55 GLAUX.LIB
GLU32 LIB 50,188 95-08-2313:02 GLU32.LIB
OPENGL32 LIB 298,996 95-12-1323:15 OPENGL32.LIB
MGA DRV 112,896 95-08-3016:57 MGA.DRV
RXDDI DLL 46,080 95-08-3014:19 RXDDI.DLL
SS3DFO SCR 100,192 95-08-2313:17 SS3DFO.SCR
SSFLWBOX SCR 61,744 95-08-2313:17 SSFLWBOX.SCR
SSPIPES SCR 84,672 95-08-2313:17 SSPIPES.SCR
SSTEXT3D SCR 96,736 95-08-2313:17 SSTEXT3D.SCR
15 個 2,910,164バイトのファイルがあります

このうち拡張子SCRのものは、Windows用の3Dスクリーンセーバーです。
このスクリーンセーバーをWindowsディレクトリーにコピーすると、スクリーンセーバーとして使用できます。

C:\ogltemp>copy *.src c:\windows

3dscr.png

[スタート]-[設定]-[コントロールパネル]-[画面]-[スクリーンセーバー]の[スクリーンセーバー]リストから、3Dスクリーンセーバーを選んでみてください。
3Dスクリーンセーバーが実行できればOpenGLは正常に動作しています。

OpenGLについては、OpenGL日本語FAQをぜひ御覧ください。

http://tech.webcity.ne.jp/~andoh/opengl/

■Java 2 SDK 1.3のインストール

jdk1_3_0rc1-win.exeをダブルクリックして実行してください。

j2sdkico.png

Java 2 SDK 1.3のセットアップが起動します。

j2sdkunpaq.png

j2sdksplash.png

j2sdkwelcome.png

j2sdklisence.png

j2sdkpath.png

Java 2 SDK 1.3のインストール先ディレクトリーは、 デフォルト設定ではC:\jdk1.3です。

注意: ディレクトリー名にスペースを含むディレクトリーに インストールする場合は注意が必要です。
インストール後に環境変数 PATHにJava 2 SDKのbinディレクトリーを含める必要がありますが、 このときパス名にスペースが含まれていると java, javacなどの Javaコマンドが起動できなくなります
デフォルトのC:\jdk1.3のままにすることをお奨めします。

j2sdkcompo.png

j2sdkcopy.png

Java 2 SDKをインストールすると、 Java 2 RE (Java 2 Runtime Environment)もインストールされます。
Java 2 REをインストールするとJava Plug-inもインストールされます。
Java Plug-inはJava 3DをNetscapeやInternet Explorerなどの ブラウザーで実行させるときに必要になります。

j2sdkfinish.png

j2sdkreadme.png

これでJava 2 SDK 1.3のインストールが終了しました。

■■環境変数PATHの設定

Java 2 SDKを動かすには、Java 2 SDKのbinディレクトリーを環境変数PATHに含める必要があります。

コマンドプロンプトで一時的に設定するには次のようにします。

C:\> set PATH=C:\jdk1.3\bin;%PATH%

Windows 95/98では C:\AUTOEXEC.BATで環境変数PATHC:\jdk1.3\binを設定すると良いでしょう。

Windows NT 4.0, Windos 2000では [スタート]-[設定]-[コントロールパネル]-[システム] で設定します。

w2kcp.png

Windows 2000では[システムのプロパティ] ダイアログで[詳細]タブを選び、 [環境変数(E)...] ボタンを押します。

w2kdetail.png

[環境変数]ダイアログの [システム環境変数]Pathを選び、 [編集(I)...]ボタンを押します。

w2kenv.png

[システム変数の編集]ダイアログで [変数値(V):]フィールドに C:\jdk1.3\binを追加します。パスは ; (セミコロン)で区切ってください。

w2kpathappend.png

変更された環境変数を有効にするには、 いったんログアウトして再度ログインしてください。

Windows NT 4.0, Windows 2000での注意点

Windows NT 4.0, Windows 2000の場合、Java 2 SDKのインストーラーはjava.exe, javaw.exeC:\WINNTにインストールします。
(どうしてこういう仕様になっているのかは不明です)

このとき、Windows NT 4.0, Windows 2000ではC:\WINNTが環境変数PATHに含まれてしまうため、Java 3Dの実行に不都合が生じます。
Windows NTのコマンド・プロンプトでjava.exe, javaw.exeを起動したとき、C:\WINNTディレクトリー配下のjava.exe, javaw.exeが実行されます。
C:\WINNTjava.exe, javaw.exeC:\jdk1.3\JRE\lib\extディレクトリー配下にインストールされたJava 3Dのライブラリーをロードできず、例外が発生してJava 3Dが実行できなくなります。

C:\jdk1.3\demo\java3d\HelloUniverse>java HelloUniverse
Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/j3d/Scene
GraphObject
      

これを回避するには以下の2とおりの方法があります。

  1. 環境変数PATHの中で、C:\jdk1.3\binC:\WINNTよりも前に設定する
  2. C:\WINNTディレクトリー配下のjava.exe, javaw.exeを削除する
    (削除しても特に問題はありません)

最初の方法が簡単です。
PATHの変更で他のソフトに影響が出る場合は2番目の方法で回避してください。

■Java 3D 1.2 (OpenGL版)のインストール

java3d1_2beta1-win-opengl-sdk.exeをダブルクリックして、 Java 3D 1.2 Beta1のインストールを開始してください。

j3d12ico.png

j3d12unpaq.png

j3d12splash.png

j3d12welcome.png

j3d12lisence.png

j3d12info.png

Java 3Dのインストーラーが指定する、 デフォルトのインストールディレクトリーには注意してください。

j3d12path.png

デフォルトのインストールディレクトリーは Java 2 SDKの特定バージョンのものが指定されます。
そのバージョンのJava 2 SDKがインストールされていなくても同様です。

Java 2 SDK 1.3のインストール先ディレクトリーは C:\jdk1.3なので、 Java 3Dのインストール先もC:\jdk1.3に変更する必要があります。

[Browse..]ボタンを押してください。 [Choose Folder]ダイアログが表示されます。

j3d12pathdlg.png

[Choose Folder]ダイアログでJava 2 SDKの インストールディレクトリー(ここではC:\jdk1.3)を選び、 [OK]ボタンを押してください。

j3d12path13.png

j3d12compo.png

j3d12copy.png

j3d12finish.png

これでJava 3D 1.2 (OpenGL版)のインストールは終了しました。

■■インストールされたファイル

Java 3D 1.2 (OpenGL版)のインストールファイルの中から、 いくつかの主要なファイルを以下に示します。

C:\
 +---jdk1.3
     |   java3d-utils-src.jar     // com.sun.j3d パッケージソース
     +---jre
         |---bin
         |       J3D.dll          // OpenGL版 Java 3D DLL
         |       j3daudio.dll     // Java 3D サウンドDLL
         +---lib
             +---ext
                     vecmath.jar  // javax.vecmath パッケージアーカイブ
                     j3dcode.jar  // javax.media.j3d パッケージアーカイブ
                     j3daudio.jar // com.sun.j3d.audio パッケージアーカイブ
                     j3dutils.jar // com.sun.j3d パッケージアーカイブ
      

C:\jdk1.3ディレクトリーに、com.sun.j3d パッケージのソースコードのアーカイブファイルである java3d-utils-src.jarがインストールされます。
本書執筆時点では、Java 3Dのソースはまだ公開されていません。
ですが、Java 3Dのユーティリティークラスである com.sun.j3dパッケージのソースは公開されています。
com.sun.j3dパッケージのソースは、 Java 3DのプログラミングTipsの宝庫ですのでぜひ読んでみてください。

C:\jdk1.3\binディレクトリーには、 Java 3Dの2つのDLLがインストールされます。
J3D.dllはOpenGLに対応したJava 3Dの描画用DLLです。
j3daudio.dllはJava 3DのサウンドDLLです。
これらのDLLはOS依存のグラフィックAPI、サウンドAPIを Javaから呼び出すために必要なものです。

C:\jdk1.3\jre\lib\extディレクトリーには Java 3DライブラリーのJARアーカイブがインストールされます。

Java 2からJava拡張機能(Java Extention Mechanism)仕様が採用されました。
Java機能拡張のひとつである「インストール機能拡張」と呼ばれる仕組みは、 jre/lib/extにJARアーカイブを置いておけば、 CLASSPATHで明示的に位置を指定しなくても クラスがロードされるというものです。

Java 3Dもこの「インストール機能拡張」の仕組みを使って、 Java 3Dのクラスが格納されたJARアーカイブをjre/lib/ext ディレクトリーにインストールしています。
Java 3Dのコンパイル時や実行時に ClassNotFoundExceptionが発生する場合、 jre/lib/extディレクトリーに Java 3DのJARファイルが含まれているかどうか確かめてください。

■ドキュメントのインストール

著者はJava 2のドキュメントを Java 2 SDK 1.3のインストールディレクトリーに展開しました。

C:\>jar xvf j2skd1_3_0beta1-doc.zip

また、Java 3Dのドキュメントを、Java 2のドキュメント展開後に作られたdocsディレクトリーに展開しました。

C:\jdk1.3\docs>jar xvf java3d1_2beta1-doc.zip

上記のコマンドを実行すると、以下のようなディレクトリー構成で展開されます。

C:\
 +---jdk1.3
     +---doc
         +---html
             |---com
             |   +---sun
             |       +---j3d
             |           |---audioengines
             |           |   +---javasound
             |           |---loaders
             |           |   |---lw3d
             |           |   +---objectfile
             |           +---utils
             |               |---applet
             |               |---audio
             |               |---behaviors
             |               |   |---interpolators
             |               |   |---keyboard
             |               |   |---mouse
             |               |   +---picking
             |               |---compression
             |               |---geometry
             |               |---image
             |               |---picking
             |               +---universe
             +---javax
                 |---media
                 |   |---j3d
                 |   +---volumeimage
                 +---vecmath
      

著者はJava 3D API SpecificationC:\jdk1.2.1\docsディレクトリーに展開しました。

C:\jdk1.3\docs>jar xvf j3dguide.zip

C:\
 +---jdk1.3
     +---docs
         +---j3dguide
             |---shared
             +---chars
      

著者はJava 2やJava 3Dのドキュメントファイルを、Windowsデスクトップのショートカットアイコンとして登録して利用しています。

jdocicns.png

アイコン 内容 ファイル名
Java3D Spec Java 3D API仕様 (英語版) C:\jdk1.3\docs\j3dguide\j3dTOC.doc.html
Java3D API Java 3D APIドキュメント (英語版) C:\jdk1.3\docs\html\index.html
Java2 Document JDK 1.2ドキュメント (日本語版) C:\jdk1.3\docs\ja\index.html
Java2 API JDK 1.2 APIドキュメント (日本語版) C:\jdk1.3\docs\ja\api\index.html

com.sun.j3dパッケージソースのインストール

Java 3D 1.2をインストールすると com.sun.j3dパッケージソースのJARアーカイブもインストールされます。
このファイルは次のコマンドで復元してください。

C:\jdk1.3>jar xvf java3d-utils-src.jar

C:\jdk1.3に、以下のようなディレクトリー構成でソースファイルが復元されます。

C:\
 +---jdk1.3
     +---src
         +---com
             +---sun
                 +---j3d
                     |---audioengines          // AudioEngineなどのクラス 
                     |   +---javasound         // JavaSoundMixerクラス
                     |---loaders               // ファイル・ローダーの基本クラス
                     |   |---lw3d              // LightWaveファイル・ローダー
                     |   +---objectfile        // WaveFront .objファイル・ローダー
                     +---utils
                         |---applet            // MainFrameクラス
                         |---audio             // DistanceAttenuationクラス
                         |---behaviors
                         |   |---mouse         // マウス処理の基本クラス
                         |   |---keyboard      // キーボード処理の基本クラス
                         |   |---interpolators // アニメーションの基本クラス
                         |   +---picking       // ピッキングの基本クラス
                         |---compression       // ジオメトリー圧縮クラス
                         |---geometry          // プリミティブ描画オブジェクト
                         |---image             // TextureLoaderクラス
                         |---picking           // PickShapeを使ったピッキングクラス
                         +---universe          // SimpleUniverseクラス 
      

Borland JBuilder 3 Foundation Editionで Java 3Dを使う (Windows NT, Windows 2000)

JBuilder 3 Foundation Editionへのインストールは、 CD-ROMまたは本書サポートページ http://www.javaopen.org/j3dbook/を参照してください。