Linuxへのインストール

Linux用のJDK 1.2, Java 3Dのインストール方法を説明します。
本書執筆時点では、Java 3DはIntel x86対応のpre-v1がリリースされています。
Linux用のJava 3Dの稼働環境は次の通りです。

Linux用のJava 3Dは、OpenGL互換のフリーの3DCG APIであるMesa上で稼働します。

Linux用のJDK, Java 3Dの最新バージョンについては下記を参照してください。

http://www.blackdown.org/

blackdown.gif

Java 2 SDK (JDK 1.2) for Linux, version pre-release 1の入手

Linux用のJDK 1.2を入手します。
本書執筆時点では、JDK 1.2のバージョンはpre-release 1です。

著者は下記のミラーサーバーからダウンロードしました。

ftp://ftp.lab.kdd.co.jp/Linux/java-linux/JDK/JDK-1.2/i386/pre-v1/jdk1.2pre-v1.tar.bz2

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

jdk1.2pre-v1.tar.bz2 24,457,274バイト

JDK 1.2はglibc2で動作します。
glibc2に対応したLinuxディストリビューションとしては、Red Hat 5.2, Debian GNU/Linux 2.1などがあります。
著者はRed Hat 5.2をベースにした日本語対応のディストリビューションであるVine Linux 1.0 betaを使用しました。

Vine Linuxに関しては、下記のサイトをご参照ください。

http://vine.flatout.org/

bzip2のインストール

JDK 1.2はbzip2で圧縮されています。復元にはbzip2が必要です。
著者が使用するVine Linux 1.0 betaにはbzip2が含まれていなかったので、bzip2をダウンロードしてインストールしました。

bzip2については下記サイトをご参照ください。

http://www.muraroa.demon.co.uk/

bzip2は下記からダウンロードしました。

ftp://ftp.kddlabs.co.jp/pub/Linux/packages/RedHat/contrib/libc6/SRPMS/bzip2-0.9.0c-1.src.rpm

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

bzip2-0.9.0c-1.src.rpm 454,425バイト

bzip2のインストール作業はrootで行います。
rootとしてログインするか、suコマンドでrootユーザーに切替えて作業してください。

%  su
Password:
# rpm -i bzip2-0.9.0c-1.src.rpm

JDK 1.2のインストール

JDK 1.2をホームディレクトリーにダウンロードしてあるものとします。
インストール作業はrootで行います。
rootとしてログインするか、suコマンドでrootユーザーに切替えて作業してください。
ここではJDK 1.2を/usr/local配下にインストールしています。
jdk1.2pre-v1.tar.bz2は/home/yasuyukiにダウンロードしています。

%  su
Password: 
# cd /usr/local
# bzip2 -cd /home/yasuyuki/jdk1.2pre-v1.tar.bz2 | tar xf -

環境変数PATHの設定

JDK 1.2を動作させるには、環境変数PATHにJDKのbinディレクトリーが含まれている必要があります。
bashでは次のように設定します。

% export PATH=/usr/local/jdk1.2/bin:$PATH

JDKの動作テスト

コマンドラインからjavaを実行してみましょう。

% java -version
java version "1.2"
Classic VM (build Linux_JDK_1.2_pre-release-v1, native threads, sunwjit)

今度は、SwingのサンプルであるSwingSetを実行してみます。

% cd /usr/local/jdk1.2/demo/jfc/SwingSet/
% appletviewer SwingSetApplet.html 
Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/local/jdk1.2/jre/lib/i386/libfontmanager.so: libstdc++-libc6.0-1.so.2: cannot open shared object file: No such file or directory
	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
	at java.lang.ClassLoader.loadLibrary0(Compiled Code)
	at java.lang.ClassLoader.loadLibrary(Compiled Code)
	at java.lang.Runtime.loadLibrary0(Compiled Code)
	at java.lang.System.loadLibrary(Compiled Code)
	at sun.security.action.LoadLibraryAction.run(Compiled Code)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.awt.font.NativeFontWrapper.(NativeFontWrapper.java:41)
	at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
	at sun.awt.X11GraphicsEnvironment.(X11GraphicsEnvironment.java:61)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Compiled Code)
	at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(Compiled Code)
	at sun.awt.motif.MToolkit.(MToolkit.java:59)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Compiled Code)
	at java.awt.Toolkit$2.run(Compiled Code)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.Toolkit.getDefaultToolkit(Compiled Code)
	at java.awt.Window.getToolkit(Compiled Code)
	at java.awt.Frame.addNotify(Compiled Code)
	at java.awt.Window.pack(Compiled Code)
	at sun.applet.AppletViewer.(Compiled Code)
	at sun.applet.StdAppletViewerFactory.createAppletViewer(Compiled Code)
	at sun.applet.AppletViewer.parse(Compiled Code)
	at sun.applet.AppletViewer.parse(Compiled Code)
	at sun.applet.AppletViewer.main(Compiled Code)

Linux用のJDKはDebian GNU/Linux 2.1で開発されているようです。
Vine Linux 1.0はRed Hat 5.2ベースであり、glibc2のShared Libraryのファイル名の違いから上記のようなエラーが発生するようです。
このエラーは、以下のようなシンボリック・リンクの作成で回避できるようです。

% su
Password: 

# cd /usr/lib
# ln -s libstdc++.so.2.8.0 libstdc++-libc6.0-1.so.2 

もう一度実行してみます。

% cd /usr/local/jdk1.2/demo/jfc/SwingSet/
% appletviewer SwingSetApplet.html 

メニューのフォントが文字化けしていますが、いちおう実行できています。

Mesaのインストール

LinuxでJava 3Dを動かすためには、OpenGLの互換APIであるMesaが必要です。
著者はMesaを下記からダウンロードしました。

ftp://ftp.lab.kdd.co.jp/Linux/packages/RedHat/dist/redhat/powertools/5.2/i386/Mesa-3.0-2.i386.rpm
ftp://ftp.lab.kdd.co.jp/Linux/packages/RedHat/dist/redhat/powertools/5.2/i386/Mesa-glut-3.0-2.i386.rpm
ftp://ftp.lab.kdd.co.jp/Linux/packages/RedHat/dist/redhat/powertools/5.2/i386/Mesa-devel-3.0-2.i386.rpm
ftp://ftp.lab.kdd.co.jp/Linux/packages/RedHat/dist/redhat/powertools/5.2/i386/Mesa-glut-devel-3.0-2.i386.rpm
ftp://ftp.lab.kdd.co.jp/Linux/packages/RedHat/dist/redhat/powertools/5.2/i386/Mesa-demos-3.0-2.i386.rpm

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

Mesa-3.0-2.i386.rpm443,581バイト// Mesa 3.0.2
Mesa-glut-3.0-2.i386.rpm102,429バイト// Mesa glut 3.0.2
Mesa-devel-3.0-2.i386.rpm559,672バイト// Mesa開発用ヘッダーファイル
Mesa-glut-devel-3.0-2.i386.rpm102,429バイト// Mesa glut開発用ヘッダーファイル
Mesa-demos-3.0-2.i386.rpm1,903,456バイト// Mesaデモ

Mesaをインストールします。

% su
Password:

# rpm -i Mesa-3.0-2.i386.rpm
# rpm -i Mesa-glut-3.0-2.i386.rpm
# rpm -i Mesa-devel-3.0-2.i386.rpm 
# rpm -i Mesa-glut-devel-3.0-2.i386.rpm 
# rpm -i Mesa-demos-3.0-2.i386.rpm

Mesaの動作テスト

Mesaの動作テストをしてみましょう。
Mesaのデモを実行してみます。

% cd /usr/lib/Mesa-3.0/demos/
% ls
Makefile	 gears		  morph3d.c	   reflect	    texcyl
Makefile.cygnus  gears.c	  multiext	   reflect.c	    texcyl.c
bounce		 girl.rgb	  multiext.c	   reflect.rgb	    texobj
bounce.c	 glinfo		  multitex	   renormal	    texobj.c
clearspd	 glinfo.c	  multitex.c	   renormal.c	    trispd
clearspd.c	 glutfx		  osdemo	   spectex	    trispd.c
descrip.mms	 glutfx.c	  osdemo.c	   spectex.c	    winpos
drawpix		 isosurf	  paltex	   stex3d	    winpos.c
drawpix.c	 isosurf.c	  paltex.c	   stex3d.c
gamma		 isosurf.dat	  pointblast	   tessdemo
gamma.c		 morph3d	  pointblast.c	   tessdemo.c

% ./morph3d
Morph 3D - Shows morphing platonic polyhedra
Author: Marcelo Fernandes Vianna (vianna@cat.cbpf.br)

  [1]    - Tetrahedron
  [2]    - Hexahedron (Cube)
  [3]    - Octahedron
  [4]    - Dodecahedron
  [5]    - Icosahedron
[SPACE]  - Toggle colored faces
[RETURN] - Toggle smooth/flat shading
 [ESC]   - Quit 

Java 3Dのインストール

Linux用Java 3Dは、本書執筆時点ではpre-v1 (Intel x86)が公開されています。

著者は下記からダウンロードしました。

http://nitric.com/pub/java-linux/java3d/1.1.1/i386/

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

java3d1_1_1pre-v1-linux-sdk_tar.bz2 2,180,744バイト

著者は/home/yasuyuki/にダウンロードしました。

このファイルをJDKのインストールディレクトリーに展開します。

% su
Password:

# cd /usr/local
# bzip2 -dc /home/yasuyuki/java3d1_1_1pre-v1-linux-sdk_tar.bz2 | tar xvf -
jdk1.2/
jdk1.2/jre/
jdk1.2/jre/lib/
jdk1.2/jre/lib/i386/
jdk1.2/jre/lib/i386/libJ3D.so
jdk1.2/jre/lib/i386/libj3daudio.so
jdk1.2/jre/lib/ext/
jdk1.2/jre/lib/ext/vecmath.jar
jdk1.2/jre/lib/ext/j3dcore.jar
jdk1.2/jre/lib/ext/j3daudio.jar
jdk1.2/jre/lib/ext/j3dutils.jar
jdk1.2/demo/
jdk1.2/demo/java3d/
jdk1.2/demo/java3d/Appearance/
jdk1.2/demo/java3d/Appearance/AppearanceTest.java
jdk1.2/demo/java3d/Appearance/AppearanceTest.class
jdk1.2/demo/java3d/Appearance/Tetrahedron.java
jdk1.2/demo/java3d/Appearance/Tetrahedron.class
jdk1.2/demo/java3d/AppearanceMixed/
jdk1.2/demo/java3d/AppearanceMixed/AppearanceMixed.java
jdk1.2/demo/java3d/AppearanceMixed/AppearanceMixed.class
jdk1.2/demo/java3d/AppearanceMixed/AppearanceMixed$MyCanvas3D.class
jdk1.2/demo/java3d/AppearanceMixed/Tetrahedron.java
jdk1.2/demo/java3d/AppearanceMixed/Tetrahedron.class
jdk1.2/demo/java3d/AWT_Interaction/
jdk1.2/demo/java3d/AWT_Interaction/AWTInteraction.java
jdk1.2/demo/java3d/AWT_Interaction/AWTInteraction.class
jdk1.2/demo/java3d/Billboard/
jdk1.2/demo/java3d/Billboard/Bboard.java
jdk1.2/demo/java3d/Billboard/Bboard.class
jdk1.2/demo/java3d/Billboard/MouseRotateY.java
jdk1.2/demo/java3d/Billboard/MouseRotateY.class
jdk1.2/demo/java3d/ConicWorld/
jdk1.2/demo/java3d/ConicWorld/ConicWorld.java
jdk1.2/demo/java3d/ConicWorld/ConicWorld.class
jdk1.2/demo/java3d/ConicWorld/FlipCylinder.java
jdk1.2/demo/java3d/ConicWorld/FlipCylinder.class
jdk1.2/demo/java3d/ConicWorld/README
jdk1.2/demo/java3d/ConicWorld/SimpleCylinder.java
jdk1.2/demo/java3d/ConicWorld/SimpleCylinder.class
jdk1.2/demo/java3d/ConicWorld/TexturedCone.java
jdk1.2/demo/java3d/ConicWorld/TexturedCone.class
jdk1.2/demo/java3d/ConicWorld/TexturedSphere.java
jdk1.2/demo/java3d/ConicWorld/TexturedSphere.class
jdk1.2/demo/java3d/FourByFour/
jdk1.2/demo/java3d/FourByFour/BigCube.java
jdk1.2/demo/java3d/FourByFour/BigCube.class
jdk1.2/demo/java3d/FourByFour/Board.java
jdk1.2/demo/java3d/FourByFour/Board.class
jdk1.2/demo/java3d/FourByFour/Canvas2D.java
jdk1.2/demo/java3d/FourByFour/Canvas2D.class
jdk1.2/demo/java3d/FourByFour/Cube.java
jdk1.2/demo/java3d/FourByFour/Cube.class
jdk1.2/demo/java3d/FourByFour/Cylinder.java
jdk1.2/demo/java3d/FourByFour/Cylinder.class
jdk1.2/demo/java3d/FourByFour/FourByFour.java
jdk1.2/demo/java3d/FourByFour/FourByFour.class
jdk1.2/demo/java3d/FourByFour/FourByFour$killAdapter.class
jdk1.2/demo/java3d/FourByFour/ID.java
jdk1.2/demo/java3d/FourByFour/ID.class
jdk1.2/demo/java3d/FourByFour/PickDragBehavior.java
jdk1.2/demo/java3d/FourByFour/PickDragBehavior.class
jdk1.2/demo/java3d/FourByFour/Poles.java
jdk1.2/demo/java3d/FourByFour/Poles.class
jdk1.2/demo/java3d/FourByFour/Positions.java
jdk1.2/demo/java3d/FourByFour/Positions.class
jdk1.2/demo/java3d/FourByFour/README
jdk1.2/demo/java3d/FourByFour/fbf.html
jdk1.2/demo/java3d/FourByFour/instructions.txt
jdk1.2/demo/java3d/FourByFour/scores.txt
jdk1.2/demo/java3d/GearTest/
jdk1.2/demo/java3d/GearTest/Gear.java
jdk1.2/demo/java3d/GearTest/Gear.class
jdk1.2/demo/java3d/GearTest/GearBox.java
jdk1.2/demo/java3d/GearTest/GearBox.class
jdk1.2/demo/java3d/GearTest/GearTest.java
jdk1.2/demo/java3d/GearTest/GearTest.class
jdk1.2/demo/java3d/GearTest/Shaft.java
jdk1.2/demo/java3d/GearTest/Shaft.class
jdk1.2/demo/java3d/GearTest/SpurGear.java
jdk1.2/demo/java3d/GearTest/SpurGear.class
jdk1.2/demo/java3d/GearTest/SpurGearThinBody.java
jdk1.2/demo/java3d/GearTest/SpurGearThinBody.class
jdk1.2/demo/java3d/HelloUniverse/
jdk1.2/demo/java3d/HelloUniverse/HelloUniverse.html
jdk1.2/demo/java3d/HelloUniverse/HelloUniverse.java
jdk1.2/demo/java3d/HelloUniverse/HelloUniverse.class
jdk1.2/demo/java3d/Lightwave/
jdk1.2/demo/java3d/Lightwave/README.txt
jdk1.2/demo/java3d/Lightwave/Viewer.java
jdk1.2/demo/java3d/Lightwave/Viewer.class
jdk1.2/demo/java3d/Lightwave/ballcone.lws
jdk1.2/demo/java3d/Lightwave/greenball.lwo
jdk1.2/demo/java3d/Lightwave/redcone.lwo
jdk1.2/demo/java3d/LOD/
jdk1.2/demo/java3d/LOD/LOD.class
jdk1.2/demo/java3d/LOD/LOD.java
jdk1.2/demo/java3d/Morphing/
jdk1.2/demo/java3d/Morphing/ColorCube.java
jdk1.2/demo/java3d/Morphing/ColorCube.class
jdk1.2/demo/java3d/Morphing/ColorPyramidDown.java
jdk1.2/demo/java3d/Morphing/ColorPyramidDown.class
jdk1.2/demo/java3d/Morphing/ColorPyramidUp.java
jdk1.2/demo/java3d/Morphing/ColorPyramidUp.class
jdk1.2/demo/java3d/Morphing/Morphing.java
jdk1.2/demo/java3d/Morphing/Morphing.class
jdk1.2/demo/java3d/Morphing/MorphingBehavior.java
jdk1.2/demo/java3d/Morphing/MorphingBehavior.class
jdk1.2/demo/java3d/Morphing/Pyramid2Cube.java
jdk1.2/demo/java3d/Morphing/Pyramid2Cube.class
jdk1.2/demo/java3d/Morphing/hand1.obj
jdk1.2/demo/java3d/Morphing/hand2.obj
jdk1.2/demo/java3d/Morphing/hand3.obj
jdk1.2/demo/java3d/ObjLoad/
jdk1.2/demo/java3d/ObjLoad/ObjLoad.java
jdk1.2/demo/java3d/ObjLoad/ObjLoad.class
jdk1.2/demo/java3d/PackageInfo/
jdk1.2/demo/java3d/PackageInfo/PackageInfo.java
jdk1.2/demo/java3d/PackageInfo/PackageInfo.class
jdk1.2/demo/java3d/PickTest/
jdk1.2/demo/java3d/PickTest/ColorCube.java
jdk1.2/demo/java3d/PickTest/ColorCube.class
jdk1.2/demo/java3d/PickTest/ColorPyramidDown.java
jdk1.2/demo/java3d/PickTest/ColorPyramidDown.class
jdk1.2/demo/java3d/PickTest/ColorPyramidUp.java
jdk1.2/demo/java3d/PickTest/ColorPyramidUp.class
jdk1.2/demo/java3d/PickTest/CubeIQA.java
jdk1.2/demo/java3d/PickTest/CubeIQA.class
jdk1.2/demo/java3d/PickTest/GullCG.java
jdk1.2/demo/java3d/PickTest/GullCG.class
jdk1.2/demo/java3d/PickTest/BoltCG.java
jdk1.2/demo/java3d/PickTest/BoltCG.class
jdk1.2/demo/java3d/PickTest/CubeQA.java
jdk1.2/demo/java3d/PickTest/CubeQA.class
jdk1.2/demo/java3d/PickTest/IcosahedronITSA.java
jdk1.2/demo/java3d/PickTest/IcosahedronITSA.class
jdk1.2/demo/java3d/PickTest/IcosahedronTSA.java
jdk1.2/demo/java3d/PickTest/IcosahedronTSA.class
jdk1.2/demo/java3d/PickTest/OctahedronITFA.java
jdk1.2/demo/java3d/PickTest/OctahedronITFA.class
jdk1.2/demo/java3d/PickTest/OctahedronTFA.java
jdk1.2/demo/java3d/PickTest/OctahedronTFA.class
jdk1.2/demo/java3d/PickTest/TetrahedronITA.java
jdk1.2/demo/java3d/PickTest/TetrahedronITA.class
jdk1.2/demo/java3d/PickTest/TetrahedronTA.java
jdk1.2/demo/java3d/PickTest/TetrahedronTA.class
jdk1.2/demo/java3d/PickTest/MorphingBehavior.java
jdk1.2/demo/java3d/PickTest/MorphingBehavior.class
jdk1.2/demo/java3d/PickTest/PickTestBounds.html
jdk1.2/demo/java3d/PickTest/PickTestBounds.java
jdk1.2/demo/java3d/PickTest/PickTestBounds.class
jdk1.2/demo/java3d/PickTest/PickTestGeometry.html
jdk1.2/demo/java3d/PickTest/PickTestGeometry.java
jdk1.2/demo/java3d/PickTest/PickTestGeometry.class
jdk1.2/demo/java3d/PickText3D/
jdk1.2/demo/java3d/PickText3D/PickText3DBounds.java
jdk1.2/demo/java3d/PickText3D/PickText3DBounds.class
jdk1.2/demo/java3d/PickText3D/PickText3DGeometry.java
jdk1.2/demo/java3d/PickText3D/PickText3DGeometry.class
jdk1.2/demo/java3d/PlatformGeometry/
jdk1.2/demo/java3d/PlatformGeometry/SimpleGeometry.java
jdk1.2/demo/java3d/PlatformGeometry/SimpleGeometry.class
jdk1.2/demo/java3d/PureImmediate/
jdk1.2/demo/java3d/PureImmediate/PureImmediate.html
jdk1.2/demo/java3d/PureImmediate/PureImmediate.java
jdk1.2/demo/java3d/PureImmediate/PureImmediate.class
jdk1.2/demo/java3d/ReadRaster/
jdk1.2/demo/java3d/ReadRaster/ReadRaster.java
jdk1.2/demo/java3d/ReadRaster/ReadRaster.class
jdk1.2/demo/java3d/ReadRaster/myCanvas3D.class
jdk1.2/demo/java3d/ReadRaster/myRotationInterpolator.class
jdk1.2/demo/java3d/Sound/
jdk1.2/demo/java3d/Sound/SimplerSound.java
jdk1.2/demo/java3d/Sound/SimplerSound.class
jdk1.2/demo/java3d/Sound/SimpleSounds.java
jdk1.2/demo/java3d/Sound/SimpleSounds.class
jdk1.2/demo/java3d/Sound/MoveAppBoundingLeaf.java
jdk1.2/demo/java3d/Sound/MoveAppBoundingLeaf.class
jdk1.2/demo/java3d/Sound/ReverberateSound.java
jdk1.2/demo/java3d/Sound/ReverberateSound.class
jdk1.2/demo/java3d/Sound/SimpleSoundsBehavior.java
jdk1.2/demo/java3d/Sound/SimpleSoundsBehavior.class
jdk1.2/demo/java3d/Sound/AudioBehaviorMoveOne.java
jdk1.2/demo/java3d/Sound/AudioBehaviorMoveOne.class
jdk1.2/demo/java3d/Sound/AudioReverberate.java
jdk1.2/demo/java3d/Sound/AudioReverberate.class
jdk1.2/demo/java3d/Sound/hello_universe.au
jdk1.2/demo/java3d/Sound/README.release
jdk1.2/demo/java3d/Sound/roar.au
jdk1.2/demo/java3d/Sound/techno_machine.au
jdk1.2/demo/java3d/SphereMotion/
jdk1.2/demo/java3d/SphereMotion/SphereMotion.html
jdk1.2/demo/java3d/SphereMotion/SphereMotion.java
jdk1.2/demo/java3d/SphereMotion/SphereMotion.class
jdk1.2/demo/java3d/SplineAnim/
jdk1.2/demo/java3d/SplineAnim/SplineAnim.java
jdk1.2/demo/java3d/SplineAnim/SplineAnim.class
jdk1.2/demo/java3d/Text2D/
jdk1.2/demo/java3d/Text2D/MoverBehavior.java
jdk1.2/demo/java3d/Text2D/MoverBehavior.class
jdk1.2/demo/java3d/Text2D/Text2DTest.java
jdk1.2/demo/java3d/Text2D/Text2DTest.class
jdk1.2/demo/java3d/Text3D/
jdk1.2/demo/java3d/Text3D/Text3DLoad.java
jdk1.2/demo/java3d/Text3D/Text3DLoad.class
jdk1.2/demo/java3d/TextureTest/
jdk1.2/demo/java3d/TextureTest/TextureImage.java
jdk1.2/demo/java3d/TextureTest/TextureImage.class
jdk1.2/demo/java3d/TickTockCollision/
jdk1.2/demo/java3d/TickTockCollision/Box.java
jdk1.2/demo/java3d/TickTockCollision/Box.class
jdk1.2/demo/java3d/TickTockCollision/CollisionDetector.java
jdk1.2/demo/java3d/TickTockCollision/CollisionDetector.class
jdk1.2/demo/java3d/TickTockCollision/TickTockCollision.html
jdk1.2/demo/java3d/TickTockCollision/TickTockCollision.java
jdk1.2/demo/java3d/TickTockCollision/TickTockCollision.class
jdk1.2/demo/java3d/TickTockPicking/
jdk1.2/demo/java3d/TickTockPicking/Cube.java
jdk1.2/demo/java3d/TickTockPicking/Cube.class
jdk1.2/demo/java3d/TickTockPicking/PickHighlightBehavior.java
jdk1.2/demo/java3d/TickTockPicking/PickHighlightBehavior.class
jdk1.2/demo/java3d/TickTockPicking/Tetrahedron.java
jdk1.2/demo/java3d/TickTockPicking/Tetrahedron.class
jdk1.2/demo/java3d/TickTockPicking/TickTockPicking.java
jdk1.2/demo/java3d/TickTockPicking/TickTockPicking.class
jdk1.2/demo/java3d/VirtualInputDevice/
jdk1.2/demo/java3d/VirtualInputDevice/ButtonPositionControls.class
jdk1.2/demo/java3d/VirtualInputDevice/ButtonPositionControls.java
jdk1.2/demo/java3d/VirtualInputDevice/HelloUniverse.class
jdk1.2/demo/java3d/VirtualInputDevice/HelloUniverse.java
jdk1.2/demo/java3d/VirtualInputDevice/PositionControls.class
jdk1.2/demo/java3d/VirtualInputDevice/PositionControls.java
jdk1.2/demo/java3d/VirtualInputDevice/RotationControls.class
jdk1.2/demo/java3d/VirtualInputDevice/RotationControls.java
jdk1.2/demo/java3d/VirtualInputDevice/SensorBehavior.class
jdk1.2/demo/java3d/VirtualInputDevice/SensorBehavior.java
jdk1.2/demo/java3d/VirtualInputDevice/VirtualInputDevice.class
jdk1.2/demo/java3d/VirtualInputDevice/VirtualInputDevice.java
jdk1.2/demo/java3d/VirtualInputDevice/WheelControls.class
jdk1.2/demo/java3d/VirtualInputDevice/WheelControls.java
jdk1.2/demo/java3d/geometry/
jdk1.2/demo/java3d/geometry/p51_mustang.obj
jdk1.2/demo/java3d/geometry/galleon.obj
jdk1.2/demo/java3d/images/
jdk1.2/demo/java3d/images/apimage.jpg
jdk1.2/demo/java3d/images/bg.jpg
jdk1.2/demo/java3d/images/earth.jpg
jdk1.2/demo/java3d/images/stone.jpg
jdk1.2/demo/java3d/images/ttimage.jpg
jdk1.2/java3d-utils-src.jar
jdk1.2/README.Java3D-jdk
jdk1.2/README.Java3D.linux
jdk1.2/LICENSE.Java3D

Java 3Dの実行テスト

Java 3Dのデモを実行してみます。

% cd /usr/local/jdk1.2/demo/java3d/HelloUniverse/
% java HelloUniverse

hellou-linux.gif

Win32のときよりも回転がスムーズな印象を受けました。
Linux用のJava 3Dの完成度はかなり高いと思います。