Java Applets on CD-ROM
Dr. Dobb's Journal February 1999
The ISO 9660 CD-ROM specification limits filenames to eight characters, plus a three-character extension (8.3). However, Java class files always have the five-character extension ".class." While there are two ways around this problem, neither is completely satisfactory.
There are a variety of ISO 9660 extensions in common use. The Joliet and Rockridge extensions, for example, let you attach a second, longer filename to each file. Of course, Windows is the only platform that understands Joliet, and UNIX is the only one that understands Rockridge. To complete this Rosetta stone, you can partition a CD-ROM and include a separate Macintosh HFS partition that supports all of the Mac OS file semantics, but only on MacOS.
It should be technically possible to have all of these extensions on a single CD-ROM, which would provide long filename support on Windows, UNIX, and MacOS. Unfortunately, I have yet to find CD-ROM burning software that will perform this particular bit of magic. Without all of these extensions, some platforms will see short 8.3 ISO 9660 filenames.
The second possibility is to take advantage of the ARCHIVE attribute of the APPLET tag. With this, you can instruct the browser to look for the Java class files within a ZIP archive. The archive can have a short 8.3 filename while the class files within the archive have longer names. Of course, this is not supported by older browsers, which will ignore the APPLET tag and look for the files on the CD.
In practice, I have found it best to combine these approaches. Use the ARCHIVE attribute and store the class files in a ZIP archive, but also use Joliet extensions and store the class files as regular files. With this combination, you only exclude older browsers on nonWindows machines.
-- T.K.
Copyright © 1999, Dr. Dobb's Journal