Java 2 SDK and Runtime Environment File Structure

SDK Tools

This document gives an overview of the Java 2 SDK directories and the files they contain. This page may also be used as a reference for the file structure of the Java 2 Runtime Environment. To see the file structure of the Runtime Environment, just look at the description of the contents of the SDK's jre directory on this page. The file structure of the Java 2 Runtime Environment is identical to that of the SDK's jre directory.

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:

              j2sdk1.4.0
       ___________|_________________
      |           |                 |
     bin         lib               jre
      |           |         ________|__________
    java*     tools.jar    |                   |        
    javac*    dt.jar      bin                 lib                
    javap*                 |       ________ ___|___ _________ ________ _______       
    javah*               java*    |        |       |         |        |       |    
    javadoc*                    rt.jar    ext   security   i386    applet  fonts
                            charsets.jar   |              /    \
                                      localedata.jar  server  client
                                                                
    

Assuming the SDK software is installed at /j2sdk1.4.0, here are some of the most important directories:

/j2sdk1.4.0

The root directory of the SDK software installation. Contains copyright, license, and README files. Also contains src.jar, the archive of source code for the Java 2 platform.

/j2sdk1.4.0/bin

The executables for all the development tools contained in the Java 2 SDK. The PATH environment variable should contain an entry for this directory. For more information on the tools, see the SDK Tools.

/j2sdk1.4.0/lib

Files used by the development tools. Includes tools.jar, which contains non-core classes for support of the tools and utilities in the SDK. 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.

/j2sdk1.4.0/jre

The root directory of the Java runtime environment used by the SDK development tools. The runtime environment is an implementation of the Java 2 platform. This is the directory referred to by the java.home system property.

/j2sdk1.4.0/jre/bin

Executable files for tools and libraries used by the Java platform. The executable files are identical to files in /j2sdk1.4.0/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 SDK software. This directory does not need to be in the PATH environment variable.

/j2sdk1.4.0/jre/lib

Code libraries, property settings, and resource files used by the Java runtime environment. Includes:
  • rt.jar -- the bootstrap classes (the RunTime classes that comprise the Java platform's core API).
  • charsets.jar -- character-conversion classes.

Aside from the ext subdirectory (described below) there are several additional resource subdirectories not described here.

/j2sdk1.4.0/jre/lib/ext

Default installation directory for Extensions to the Java platform. This is where the JavaHelp jar file goes when it is installed, for example.

/j2sdk1.4.0/jre/lib/security

Contains files used for security management. These include the security policy (java.policy) and security properties (java.security) files.

/j2sdk1.4.0/jre/lib/i386/client

Contains the .so file used by the Java HotSpot Client Virtual Machine, which is implemented with Java HotSpottechnology. This is the default VM.

/j2sdk1.4.0/jre/lib/i386/server

Contains the .so file used by the Java HotSpot Server Virtual Machine.

/j2sdk1.4.0/jre/lib/applet

Jar files containing support classes for applets can be placed in the lib/applet/ directory. This reduces startup time for large applets by allowing applet classes to be pre-loaded from teh local file system by the applet class loader, providing the same protections as if they had been downloaded over the net.

/j2sdk1.4.0/jre/lib/fonts

Font files for use by platform.

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:

                            j2sdk1.4.0
                     ___________|__________ _________
                    |           |          |         |
                  demo       include    src.jar     man
                 ___|___ _________ __________ ________
                |       |         |          |        |
              applets  jfc       jpda     plugin     jni
           

The additional files and directories shown above are:

/j2sdk1.4.0/src.jar

Archive containing source code for the Java 2 platform.

/j2sdk1.4.0/demo

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

/j2sdk1.4.0/demo/applets

Applets that can be used on a Web page.

/j2sdk1.4.0/demo/jfc

Examples that use Java 2Dand JFC/Swing components.

/j2sdk1.4.0/demo/jpda

Examples of using the Java Platform Debugging Architecture. Includes source code for the javadt and jdb utilities.

/j2sdk1.4.0/demo/plugin

Demos for use with Java Plug-in product.

/j2sdk1.4.0/demo/jni

Example classes and C code that demonstrate access to poll(2) functionality from the Java 2 Platform.

/j2sdk1.4.0/include

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

/j2sdk1.4.0/man

Contains troff-formatted man pages for the Java 2 SDK tools.


Java Software