The Checkers3D Application
The Checkers3D
code is unchanged from the example in Chapter 15, aside from the addition of the installDLL() method in the Checkers3D class.
Preparing the JARs
As with Checkers3D, I'm assuming that the target machine for the installation doesn't have Java 3D installed, so the test machine where I develop the installation shouldn't have it either. Instead, all of its JARs and DLLs (seven files) are copied to the Checkers3D/ directory (see Figure A-11).

Figure A-11. The Checkers3D/ application directory
Since Java 3D isn't installed in the standard location, the calls to the compiler and JVM must include additional classpath information:
javac -classpath "%CLASSPATH%;vecmath.jar;j3daudio.jar;
j3dcore.jar;j3dutils.jar" *.java
java -cp "%CLASSPATH%;vecmath.jar;j3daudio.jar;
j3dcore.jar;j3dutils.jar" Checkers3DThere's no need to mention the three DLLs (J3D.dll, j3daudio.dll, and J3DUtils.dll), which will be found by the JARs as long as they're in the same directory.
The Checkers3D classes should be collected into a single Checkers3D.jar file, along with all the required DLLs:
jar cvmf mainClass.txt Checkers3D.jar *.class *.dllThe manifest information in mainClass.txt is:
Main-Class: Checkers3D
Class-Path: vecmath.jar j3daudio.jar j3dcore.jar j3dutils.jarThe manifest specifies the class location of main() and adds the Java 3D JARs to the classpath used by Checkers3D.jar ...