README -- Java Platform, Standard Edition Development Kit

# README

## JavaTM Platform, Standard Edition 6
Development Kit

JDKTM 6

## Contents

- Introduction
- System Requirements & Installation
- JDK Documentation
- Release Notes
- Compatibility
- Bug Reports and Feedback
- Contents of the JDK
- Java Runtime Environment
- Redistribution
- Java Endorsed Standards Override Mechanism
- Java DB
- Web Pages

## Introduction

> Thank you for downloading this release of the JavaTM 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 JavaTM platform.

## System Requirements & Installation

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

> JDK 6 Installation Instructions

## JDKTM Documentation

> The on-line JavaTM Platform, Standard Edition (Java SE) Documentation contains API specifications, feature descriptions, developer guides, reference pages for JDKTM 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 JavaTM 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 Java SE 6 Release Notes on the Java Software web site for additional information pertaining to this release. Please check the on-line release notes occasionally for the latest information as they will be updated as needed.

## 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 JavaTM 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 Database 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:

> http://bugs.sun.com/services/bugreport/index.jsp

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

> Note - Please do not seek technical support through the Bug Database or our development teams. For support options, see Support and Services on the Java Software web site.

## Contents of the JDKTM

> This section contains a general summary of the files and directories in the JDKTM. For details on the files and directories, see the JDK File Structure section of the Java SE documentation for your platform.

  Development Tools
    (In the `bin/` subdirectory) Tools and utilities that will help you develop, execute, debug, and document programs written in the JavaTM programming language. For further information, see the tool documentation.
  Runtime Environment
    (In the `jre/` subdirectory) An implementation of the Java Runtime Environment (JRETM) for use by the JDK. The JRE includes a JavaTM Virtual Machine (JVMTM), class libraries, and other files that support the execution of programs written in the JavaTM 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 JavaTM platform. These include examples that use Swing and other JavaTM Foundation Classes, and the JavaTM Platform Debugger Architecture.
  Sample Code
    (In the `sample` subdirectory) Samples, with source code, of programming for certain Java API's.
  C header Files
    (In the `include/` subdirectory) Header files that support native-code programming using the Java Native Interface, the JVMTM Tool Interface, and other functionality of the JavaTM platform.
  Source Code
    (In `src.zip`) JavaTM programming language source files for all classes that make up the Java 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 JavaTM 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 Java Runtime Environment (JRETM)

> The JavaTM Runtime Environment (JRETM) is available as a separately downloadable product. See the download web site.

> The JRE allows you to run applications written in the JavaTM programming language. Like the JDKTM, it contains the JavaTM Virtual Machine (JVMTM), classes comprising the JavaTM platform API, and supporting files. Unlike the JDK, it does not contain development tools such as compilers and debuggers.

> You can freely redistribute the JRE with your application, according to the terms of the JRE license. Once you have developed your application using the JDK, you can ship it with the JRE so your end-users will have a JavaTM 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.

> Subject to the terms and conditions of the Software License Agreement and the obligations, restrictions, and exceptions set forth below, You may reproduce and distribute the Software (and also portions of Software identified below as Redistributable), provided that:

> 1. you distribute the Software complete and unmodified and only bundled as part of Your applets and applications ("Programs"),
> 2. your Programs add significant and primary functionality to the Software,
> 3. your Programs are only intended to run on Java-enabled general purpose desktop computers and servers,
> 4. you distribute Software for the sole purpose of running your Programs,
> 5. you do not distribute additional software intended to replace any component(s) of the Software,
> 6. you do not remove or alter any proprietary legends or notices contained in or on the Software,
> 7. you only distribute the Software subject to a license agreement that protects Sun's interests consistent with the terms contained in this Agreement, and
> 8. you agree to defend and indemnify Sun and its licensors from and against any damages, costs, liabilities, settlement amounts and/or expenses (including attorneys' fees) incurred in connection with any claim, lawsuit or action by any third party that arises or results from the use or distribution of any and all Programs and/or Software.

> The term "vendors" used here refers to licensees, developers, and independent software vendors (ISVs) who license and distribute the JavaTM Development Kit (JDKTM) with their programs.

> Vendors must follow the terms of the Java Development Kit Binary Code License agreement.

### Required vs. Optional Files

> The files that make up the JavaTM Development Kit (JDKTM) 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.6.0_<version> directory, where <version> is the update version number. SolarisTM and Linux filenames and separators are shown. Windows executables have the ".exe" suffix. Corresponding files with `_g` in the name can also be excluded. The corresponding man pages should be excluded for any excluded executables (with paths listed below beginning with `bin/`, for the SolarisTM Operating System and Linux).

  `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/javaws`, `jre/bin/javaws`, `jre/lib/javaws/` and `jre/lib/javaws.jar`
    Java Web Start
  `db/`
    Java DB, Sun Microsystems's distribution of the Apache Derby database technology. Default installation locations are:
    - Solaris: `/opt/SUNWjavadb`
    - Linux: `/opt/sun/javadb`
    - Windows: `C:\Program Files\Sun\JavaDB`
    For information on Java DB and Derby, including user and API documentation, the capabilities of Java DB and further resources, see the index.html file in the above directories.
  `demo/`
    Demo Applets and Applications
  `sample/`
    Sample Code
  `src.zip`
    Archive of source files

### Redistributable JDKTM Files

> The limited set of files and directories from the JDK listed below may be included in vendor redistributions of the JavaTM Runtime Environment (JRETM). They cannot be redistributed separately, and must accompany an identically versioned JRE distribution. All paths are relative to the top-level directory of the JDK. The corresponding man pages should be included for any included executables (with paths listed below beginning with `bin/`, for the SolarisTM Operating System and Linux).

  `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 JRE, 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 JRE in order to reduce the size of the JRE 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 JRE 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 JRE.
  The javac bytecode compiler, consisting of the following files:
    `bin/javac` [SolarisTM Operating System and Linux]
    `bin/sparcv9/javac` [SolarisTM Operating System (SPARC(R) Platform Edition)]
    `bin/amd64/javac` [SolarisTM Operating System (AMD)]
    `bin/javac.exe` [Microsoft Windows]
    `lib/tools.jar` [All platforms]
  The Annotation Processing Tool, consisting of the following files:
    `lib/tools.jar` [All platforms]
    `bin/apt` [SolarisTM Operating System and Linux]
    `bin/sparcv9/apt` [SolarisTM Operating System (SPARC(R) Platform Edition)]
    `bin/amd64/apt` [SolarisTM Operating System (AMD)]
    `bin/apt.exe` [Microsoft Windows]
  `lib/jconsole.jar`
    The Jconsole application. NOTE: The Jconsole application requires the dynamic attach mechanism.
  The dynamic attach mechanism consisting of the following files:
    `lib/tools.jar` [All platforms]
    `jre/lib/sparc/libattach.so` [SolarisTM Operating System (SPARC(R) Platform Edition) and Linux]
    `jre/lib/sparcv9/libattach.so` [SolarisTM Operating System (SPARC(R) Platform Edition) and Linux]
    `jre/lib/i386/libattach.so` [SolarisTM Operating System (x86) and Linux]
    `jre/lib/amd64/libattach.so` [SolarisTM Operating System (AMD) and Linux]
    `jre\bin\attach.dll` [Microsoft Windows]
  The Java Platform Debugger Architecture implementation consisting of the files shown in the dynamic attach section above, and the following files:
    `lib/tools.jar` [All platforms]
    `lib/sa-jdi.jar` [All platforms]
    `jre/lib/sparc/libsaproc.so` [SolarisTM Operating System (SPARC(R) Platform Edition) and Linux]
    `jre/lib/sparcv9/libsaproc.so` [SolarisTM Operating System (SPARC(R) Platform Edition) and Linux]
    `jre/lib/i386/libsaproc.so` [SolarisTM Operating System (x86) and Linux]
    `jre/lib/amd64/libsaproc.so` [SolarisTM Operating System (AMD) and Linux]
  `jre\bin\server\`
    On Microsoft Windows platforms, the JDK includes both the Java HotSpotTM Server VM and Java HotSpotTM Client VM. However, the JRE for Microsoft Windows platforms includes only the Java HotSpotTM Client VM. Those wishing to use the Java HotSpotTM Server VM with the JRE may copy the JDK's `jre\bin\server` folder to a `bin\server` directory in the JRE. Software vendors may redistribute the Java HotSpotTM Server VM with their redistributions of the JRE.

### Unlimited Strength Java Cryptography Extension

> Due to import control restrictions for some countries, the Java Cryptography Extension (JCE) policy files shipped with the JDK and the JRE 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 JRE.

> 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.

### The cacerts Certificates File

> Root CA certificates may be added to or removed from the Java SE certificate file located at

> `<java-home>/lib/security/cacerts`

> For more information, see The cacerts Certificates File section in the keytool documentation.

## Java Endorsed Standards Override Mechanism

> From time to time it is necessary to update the Java platform in order to incorporate newer versions of standards that are created outside of the Java Community ProcessSM (JCPSM http://www.jcp.org/) (Endorsed Standards), or in order to update the version of a technology included in the platform to correspond to a later standalone version of that technology (Standalone Technologies).

> The Endorsed Standards Override Mechanism provides a means whereby later versions of classes and interfaces that implement Endorsed Standards or Standalone Technologies may be incorporated into the Java Platform.

> 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/javase/6/docs/technotes/guides/standards/

## Java DB

> This distribution bundles Java DB, Sun Microsystems' distribution of the Apache Derby pure Java database technology. Default installation locations are:
> - Solaris: `/opt/SUNWjavadb`
> - Linux: `/opt/sun/javadb`
> - Windows: `C:\Program Files\Sun\JavaDB`

> For information on Java DB and Derby, including user and API documentation, the capabilities of Java DB and further resources, see the index.html file in the above directories.

## Web Pages

> For additional information, refer to these Sun Microsystems pages on the World Wide Web:

  http://java.sun.com/
    The Java Software web site, with the latest information on Java technology, product information, news, and features.
  http://java.sun.com/docs
    JavaTM platform Documentation provides access to white papers, the Java Tutorial and other documents.
  http://developer.java.sun.com
    Developer Services web site (Free registration required). Additional technical information, news, and features; user forums; support information, and much more.
  http://java.sun.com/products/
    Java Technology Products & API

The JavaTM Development Kit (JDKTM) is a product of Sun MicrosystemsTM, Inc.
Copyright © 2008 Sun Microsystems, Inc.
4150 Network Circle, Santa Clara, California 95054, U.S.A.
All rights reserved.