In this case, anyway, Java technology has been used as a mere thin client; few of the very valu-
able features of the Java platform have been exploited. Nevertheless, this approach works,
allowing Web browser clients to be able to execute quite sophisticated transactions. The AH
installation costs, anyway, are the same as the Sun Plug-In discussed in Chapter 2.
When facing concrete deployment of Java software complexity-compatibility trade-offs, engi-
neers have often given up the purity of the Java platform as such, favoring a better compatibil-
ity with the underlying platform, as we will discuss in the next section.
Nailing Down Java
When dealing with the deployment of Java executables today, few environments support
natively up-to-date JREs. Anyway, there is always the other way around. That is, instead of
carrying an interpreter to the place you need to run your classes, you can always package your
bytecode in something native. In this way, Java is considered to be an intermediate language,
from which you could create platform-dependent executables. Also common is an intermediate
solution, consisting only of packaging the Java executables in a platform-dependent way. We
will see a case of both these approaches in a moment.
Because this technical solution is related to the various platforms, we describe it here
in this chapter. It is, of course, not a proper solution, in that you probably lose the
best features of the Java platform. Nevertheless, it is a technique for deploying Java
code to client platforms, so we will have a look at some related products, just to
explore this alternative, too.
There are tools such as these for all the major platforms. We will refer to just two of them: a
utility for the Mac and another one for the Windows platform to complete the picture.
JBindery is a packager utility for integrating Java software into the Mac OS. It is a deployment
technology in that it enables Java software to be packaged and executed only on a given plat-
form: the Mac OS. Indeed, there are often cases when an application is required to access plat-
form-dependent features or to wrap developed applications in a more system-integrated way so
that the end-user will find it more usable. JBindery is able to package Java classes and JAR
files in a Mac-like appearance with many possible features, as follows:
• Adding a Mac Virtual File System to the Java application. This typical Mac feature per-
mits the bundling of many different files together into one, such as the bundling of an
HTML page together with all its images, applets, and so on into a file shown by the Mac
OS as a unique HTML file.