README Java TM  2 Platform Standard Edition Development Kit 5.0

JDKTM 5.0

* Disclaimer - this text represents the contents of the README.html file included in Java SE 5.0u0. As these contents are dated, some links may no longer be valid.

Introduction

Thank you for downloading this release of the JavaTM 2 Platform Standard Edition Development Kit (JDKTM). The JDK is a development environment for building applications, applets, and components using the Java programming language.

The JDK includes tools useful for developing and testing programs written in the Java programming language and running on the Java platform. These tools are designed to be used from the command line. Except for the appletviewer, these tools do not provide a graphical user interface.

System Requirements & Installation

System requirements, installation instructions and troubleshooting tips are located on the Java Software web site at:

JDK Documentation

The on-line Java 2 Platform Standard Edition Documentation contains API specifications, feature descriptions, developer guides, reference pages for JDK tools and utilities, demos, and links to related information. This documentation is also available in a download bundle which you can install on your machine. To obtain the documentation bundle, see the download page. For API documentation, refer to the The Java 2 Platform Standard Edition API Specification This provides brief descriptions of the API with an emphasis on specifications, not on code examples.

Release Notes

See the Release Notes on the Java Software web site for additional information pertaining to this release. The on-line release notes will be updated as needed, so you should check it occasionally for the latest information.

Compatibility

See Compatibility with Previous Releases on the Java Software web site for the list of known compatibility issues. Every effort has been made to support programs written for previous versions of the Java platform. Although some incompatible changes were necessary, most software should migrate to the current version with no reprogramming. Any failure to do so is considered a bug, except for a small number of cases where compatibility was deliberately broken, as described on our compatibility web page. Some compatibility-breaking changes were required to close potential security holes or to fix implementation or design bugs.

Bug Reports and Feedback

The  Bug Parade Web Page  on the Java Developer Connection web site lets you search for and examine existing bug reports, submit your own bug reports, and tell us which bug fixes matter most to you. To directly submit a bug or request a feature, fill out this form:

https://bugreport.java.com/bugreport/

You can send feedback to the J2SE documentation team. You can also send comments directly to Java Software engineering team email addresses.

Note - You should not seek technical support from Bug Parade or our development teams. For support options, see Support and Services on the Java Software web site.

Contents of the JDK

This section contains a general summary of the files and directories in the JDK. For details on the files and directories, see JDK File Structure portion of the J2SE documentation.

Development Tools

(In the bin subdirectory.) Tools and utilities that will help you develop, execute, debug, and document programs written in the Java programming language. For further information, see the tool documentation.

Runtime Environment

(In the jre subdirectory.) An implementation of the J2SE runtime environment for use by the JDK. The runtime environment includes a Java virtual machine, class libraries, and other files that support the execution of programs written in the Java programming language.

Additional Libraries

(In the lib subdirectory.) Additional class libraries and support files required by the development tools.

Demo Applets and Applications

(In the demo subdirectory.) Examples, with source code, of programming for the Java platform. These include examples that use Swing and other Java Foundation Classes, and the Java Platform Debugger Architecture.

C header Files

(In the include subdirectory.) Header files that support native-code programming using the Java Native Interface, the Java Virtual Machine Debugger Interface, the Java Virtual Machine Profiler Interface and other functionality of the Java 2 Platform.

Source Code

(In src.zip.) Java programming language source files for all classes that make up the Java 2 core API (that is, sources files for the java.*, javax.* and some org.* packages, but not for com.sun.* packages). This source code is provided for informational purposes only, to help developers learn and use the Java programming language. These files do not include platform-specific implementation code and cannot be used to rebuild the class libraries. To extract these file, use any common zip utility. Or, you may use the Jar utility in the JDK's bin directory:

jar xvf src.zip

The J2SE Runtime Environment

The J2SE Runtime Environment is available as a separately downloadable product. See the download web site.

The J2SE Runtime Environment allows you to run applications written in the Java programming language. Like the JDK, it contains the Java virtual machine, classes comprising the Java 2 Platform API, and supporting files. Unlike the JDK, it does not contain development tools such as compilers and debuggers.

You can freely redistribute the J2SE Runtime Environment with your application, according to the terms of the Runtime Environment's license. Once you have developed your application using the JDK, you can ship it with the Runtime Environment so your end-users will have a Java platform on which to run your software.

Redistribution

NOTE - The license for this software does not allow the redistribution of beta and other pre-release versions.

The term "vendors" used here refers to licensees, developers, and independent software vendors (ISVs) who license and distribute the J2SE Runtime Environment with their programs. Vendors must follow the terms of the J2SE Development Kit Binary Code License agreement.

Required vs. Optional Files

The files that make up the J2SE Development Kit are divided into two categories: required and optional. Optional files may be excluded from redistributions of the JDK at the vendor's discretion. The following section contains a list of the files and directories that may optionally be omitted from redistributions of the JDK. All files not in these lists of optional files must be included in redistributions of the JDK.

Optional Files and Directories

The following files may be optionally excluded from redistributions. These files are located in the jdk1.5.0_<version> directory, where <version> is the update version number. Solaris and Linux filenames and separators are shown. Windows executables have the ".exe" suffix. Corresponding files with _g in name can also be excluded.

  • jre/lib/charsets.jar
  • Character conversion classes

  • jre/lib/ext/
  • sunjce_provider.jar - the SunJCE provider for Java Cryptography APIs
    localedata.jar - contains many of the resources needed for non US English locales
    ldapsec.jar - contains security features supported by the LDAP service provider
    dnsns.jar - for the InetAddress wrapper of JNDI DNS provider

  • bin/rmid and jre/bin/rmid
  • Java RMI Activation System Daemon

  • bin/rmiregistry and jre/bin/rmiregistry
  • Java Remote Object Registry

  • bin/tnameserv and jre/bin/tnameserv
  • Java IDL Name Server

  • bin/keytool and jre/bin/keytool
  • Key and Certificate Management Tool

  • bin/kinit and jre/bin/kinit
  • Used to obtain and cache Kerberos ticket-granting tickets

  • bin/klist and jre/bin/klist
  • Kerberos display entries in credentials cache and keytab

  • bin/ktab and jre/bin/ktab
  • Kerberos key table manager

  • bin/policytool and jre/bin/policytool
  • Policy File Creation and Management Tool

  • bin/orbd and jre/bin/orbd
  • Object Request Broker Daemon

  • bin/servertool and jre/bin/servertool
  • Java IDL Server Tool

  • bin/javawsjre/bin/javawsjre/lib/javaws/ and jre/lib/javaws.jar
  • Java Web Start

  • src.zip
  • Archive of source files

Redistributable JDK Files

The limited set of files from the JDK listed below may be included in vendor redistributions of the J2SE Runtime Environment. They cannot be redistributed separately, and must accompany a JRE distribution. All paths are relative to the top-level directory of the JDK.
  • jre/lib/cmm/PYCC.pf
  • Color profile. This file is required only if one wishes to convert between the PYCC color space and another color space.

    All .ttf font files in the jre/lib/fonts directory.

    Note that the LucidaSansRegular.ttf font is already contained in the J2SE Runtime Environment, so there is no need to bring that file over from the JDK.

  • jre/lib/audio/soundbank.gm
  • This MIDI soundbank is present in the JDK, but it has been removed from the J2SE Runtime Environment in order to reduce the size of the Runtime Environment's download bundle. However, a soundbank file is necessary for MIDI playback, and therefore the JDK's soundbank.gm file may be included in redistributions of the Runtime Environment at the vendor's discretion. Several versions of enhanced MIDI soundbanks are available from the Java Sound web site: http://java.sun.com/products/java-media/sound/. These alternative soundbanks may be included in redistributions of the J2SE Runtime Environment.

    The javac bytecode compiler, consisting of the following files:

    bin/javac [Solaris(TM) Operating Environment and Linux]
    bin/sparcv9/javac [Solaris Operating Environment (SPARC(R) Platform Edition)]
    bin/javac.exe [Microsoft Windows]
    lib/tools.jar [All platforms]

    The Annotation Processing Tool, consisting of the following files:

    bin/apt [Solaris(TM) Operating Environment and Linux]
    bin/sparcv9/apt [Solaris Operating Environment (SPARC(R) Platform Edition)]
    bin/apt.exe [Microsoft Windows]

  • jre\bin\server\
  • On Microsoft Windows platforms, the JDK includes both the Java HotSpot Server VM and Java HotSpot Client VM. However, the J2SE Runtime Environment for Microsoft Windows platforms includes only the Java HotSpot Client VM. Those wishing to use the Java HotSpot Server VM with the J2SE Runtime Environment may copy the JDK's jre\bin\server folder to a bin\serverdirectory in the J2SE Runtime Environment. Software vendors may redistribute the Java HotSpot Server VM with their redistributions of the J2SE Runtime Environment.

Unlimited Strength Java Cryptography Extension

Due to import control restrictions for some countries, the Java Cryptography Extension (JCE) policy files shipped with the J2SE Development Kit and the J2SE Runtime Environment allow strong but limited cryptography to be used. These files are located at



<java-home>/lib/security/local_policy.jar
<java-home>/lib/security/US_export_policy.jar

where <java-home> is the jre directory of the JDK or the top-level directory of the J2SE Runtime Environment. An unlimited strength version of these files indicating no restrictions on cryptographic strengths is available on the JDK web site for those living in eligible countries. Those living in eligible countries may download the unlimited strength version and replace the strong cryptography jar files with the unlimited strength files.

jconsole

  • jconsole.jar
  • jconsole may be redistributed outside the JDK but only with Sun's JRE.

Endorsed Standards Override Mechanism

An endorsed standard is a Java API defined through a standards process other than the Java Community ProcessSM (JCPSM). Because endorsed standards are defined outside the JCP, it is anticipated that such standards will be revised between releases of the Java 2 Platform. In order to take advantage of new revisions to endorsed standards, developers and software vendors may use the Endorsed Standards Override Mechanism to provide newer versions of an endorsed standard than those included in the Java 2 Platform as released by Sun Microsystems.

For more information on the Endorsed Standards Override Mechanism, including the list of platform packages that it may be used to override, see

http://java.sun.com/j2se/1.5.0/docs/guide/standards/

Classes in the packages listed on that web page may be replaced only by classes implementing a more recent version of the API as defined by the appropriate standards body.

In addition to the packages listed in the document at the above URL, which are part of the Java 2 Platform Standard Edition (J2SETM) specification, redistributors of Sun's J2SE Reference Implementation are allowed to override classes whose sole purpose is to implement the functionality provided by public APIs defined in these Endorsed Standards packages. Redistributors may also override classes in theorg.w3c.dom.* packages, or other classes whose sole purpose is to implement these APIs.

The cacerts Certificates File

Root CA certificates may be added to or removed from the J2SE certificate file located at <java-home>/lib/security/cacerts. For more information, see The cacerts Certificates File section in the keytool documentation.