JDK File Structure

JDK Tools

This document gives an overview of the JDK directories and the files they contain.

Development Files and Directories

This section describes the files and directories that are required to develop apps for the Java platform. (The directories that are not required include demos, Java source code, and C header files. They are discussed in the following section, Additional Files and Directories.) The following chart shows the most important directories:

      |           |                 |
     bin         lib               jre
      |           |         ________|__________
    java*     tools.jar    |                   |        
    javac*    dt.jar      bin                 lib                
    javap*                 |       ________ ___|___ _________         
    javah*               java*    |        |       |         |
    javadoc*                    rt.jar    ext   security   sparc
                                i18n.jar   |              /     \
                                         iiimp.jar    classic  green_threads

Assuming the JDK software is installed at /jdk1.2, here are the crucial directories and why they are important:

The root directory of the JDK software installation. Contains copyright, license, and README files. Also includes:
The executables for all the development tools contained in the Java Development Kit. The PATH environment variable should contain an entry for this directory. For more information on the tools, see the JDK Tools.

Files used by the development tools. Includes tools.jar, which contains non-core classes for support of the tools and utilities in the JDK. Also includes dt.jar, the DesignTime archive of BeanInfo files that tell interactive development environments (IDE's) how to display the Java components and how to let the developer customize them for the application.

The root directory of the Java runtime environment used by the JDK development tools. The runtime environment is an implementation of the Java 1.2 platform. It is exactly the same as the deployable JRE, minus the documentation.

Executable files for tools and libraries used by the Java platform. The executable files are identical to files in /jdk1.2/bin. The java launcher tool serves as an application launcher, in place of the old jre tool that shipped with 1.1 versions of the JDK software. This directory does not need to be in the PATH environment variable.

Code libraries, property settings, and resource files used by the Java runtime environment. Includes:
Aside from the ext subdirectory (described below) there are several additional resource subdirectories not described here.

Default installation directory for Extensions to the Java platform. This is where the JavaHelp jar file goes when it is installed, for example. Includes:
Contains files used for security management. These include the security policy (java.policy) and security properties (java.security) files.

Contains the .so (shared object) files used by the Solaris version of the Java platform.

Contains the .so file used by the classic VM. The classic VM is the language-interpreter version of the Java Virtual Machine. When newer virtual machines are available, their .so files will be installed in a new subdirectory of jre/lib/sparc.

Contains the .so files used for the green threads version of multithreading. For information on choosing between green threads and native threads, see Solaris Multithreading Options.

Additional Files and Directories

This section describes the directory structure for the demos, Java source code, and C header files. Here is the directory structure:

          __________ _____|_____ _____________
         |          |           |             |
       src.jar    demo       include     include-old
                |       |  
              applets  jfc

The additional directories shown above are:

Examples, with source code, that show you how to program for the Java platform.

Applets that can be used on a Web page.

Examples that use the new JFC/Swing components.

Examples that use the new Java 2D graphics.

C-language header files that support native-code programming using the Java Native Interface [web]. and the Java Virtual Machine Debugger Interface [web].

Header files that support native-code programming using older interfaces. These header files are provided only for backward-compatibility. These interfaces are deprecated, unsupported and not available on all Java virtual machines.