Preface

Java Cardtrademark technology combines a portion of the Javatrademark programming language with a runtime environment optimized for smart cards and related, small-memory embedded devices. The goal of Java Card technology is to bring many of the benefits of the Java programming language to the resource-constrained world of smart cards.

The Classic Edition of the Java Card platform is defined by three specifications: this Runtime Environment Specification, Java Card Platform, Version 3.0.1, Classic Edition, the Virtual Machine Specification, Java Card Platform, Version 3.0.1, Classic Edition, and the Application Programming Interface, Java Card Platform, Version 3.0.1, Classic Edition.

This document is a specification of the Classic Edition of the Java Card Platform, Version 3.0.1, Runtime Environment (Java Card RE). In this book, Java Card 3 Platform refers to both versions 3.0 and 3.0.1 to distinguish them from all earlier versions. A vendor of a Java Card technology-enabled device provides an implementation of the Java Card RE. A Java Card RE implementation within the context of this specification refers to a vendor’s implementation of the Java Virtual Machine[1] (VM) for the Java Card platform (Java Card virtual machine or Java Card VM), the Java Card Application Programming Interface (API), or other component, based on the Java Card technology specifications. A “reference implementation” is an implementation produced by Sun Microsystems, Inc. Application software written for the Java Card platform is referred to as a Java Card technology-based applet (Java Card applet or card applet).


Who Should Use This Specification

This specification is intended to assist implementers of the Java Card RE in creating an implementation, developing a specification to extend the Java Card technology specifications, or in creating an extension to the runtime environment for the Java Card platform. This specification is also intended for Java Card applet developers who want a greater understanding of the Java Card technology specifications.


Before You Read This Specification

Before reading this guide, you should be familiar with the Java programming language, the other Java Card technology specifications, and smart card technology. A good resource for becoming familiar with Java technology and Java Card technology is the Sun Microsystems, Inc. web site, located at

http://java.sun.com

You should also be familiar with the Java Card technology website at

http://java.sun.com/products/javacard/


How This Specification Is Organized

Chapter 1, “Introduction,” gives an overview of the information contained in this specification.

Chapter 2, “Lifetime of the Java Card Virtual Machine,” defines the lifetime of the Java Card virtual machine.

Chapter 3, “Java Card Applet Lifetime,” defines the lifetime of an applet.

Chapter 4, “Logical Channels and Applet Selection,” describes how the Java Card RE handles applet selection.

Chapter 5, “Transient Objects,” describes the properties of transient objects.

Chapter 6, “Applet Isolation and Object Sharing,” describes applet isolation and object sharing.

Chapter 7, “Transactions and Atomicity,” describes the functionality of atomicity and transactions.

Chapter 8, “Remote Method Invocation Service,” describes the server-side (card-side) functionality of the Remote Method Invocation (RMI) feature of Java Card 3 Platform.

Chapter 9, “API Topics,” describes API functionality required of a Java Card RE but not completely specified in the Application Programming Interface, Java Card Platform, Version 3.0.1, Classic Edition.

Chapter 10, “Virtual Machine Topics,” describes virtual machine resource failures and security violations.

Chapter 11, “Applet Installation and Deletion,” provides an overview of the Applet Installer and Java Card RE required behavior.

Glossary provides definitions of selected terms used in the entire Classic Edition.


Using UNIX Commands

This document might not contain information about basic UNIX® commands and procedures such as shutting down the system, booting the system, and configuring devices. Refer to the following for this information:

http://docs.sun.com


Shell Prompts


Shell

Prompt

C shell

machine-name%

C shell superuser

machine-name#

Bourne shell and Korn shell

$

Bourne shell and Korn shell superuser

#



Typographic Conventions


Typeface[2]

Meaning

Examples

AaBbCc123

The names of commands, files, and directories; on-screen computer output

Edit your .login file.

Use ls -a to list all files.

% You have mail.

AaBbCc123

What you type, when contrasted with on-screen computer output

% su

Password:

AaBbCc123

Book titles, new words or terms, words to be emphasized. Replace command-line variables with real names or values.

Read Chapter 6 in the User’s Guide.

These are called class options.

You must be superuser to do this.

To delete a file, type rm filename.



Related Documentation

References to various documents or products are made in this guide, so you might want to have them available:


Documentation, Support, and Training


Sun Function

URL

Documentation

http://www.sun.com/documentation/

Support

http://www.sun.com/support/

Training

http://www.sun.com/training/



Third-Party Web Sites

Sun is not responsible for the availability of third-party web sites mentioned in this document. Sun does not endorse and is not responsible or liable for any content, advertising, products, or other materials that are available on or through such sites or resources. Sun will not be responsible or liable for any actual or alleged damage or loss caused by or in connection with the use of or reliance on any such content, goods, or services that are available on or through such sites or resources.


Sun Welcomes Your Comments

Sun Microsystems is interested in improving its documentation and welcomes your comments and suggestions. You can submit your comments to
jc-bandol-spec-feedback@sun.com.

Please include the title of your document with your feedback:

Runtime Environment Specification, Java Card Platform, v3.0.1, Classic Edition


1 (Footnote) The terms "Java Virtual Machine" and "JVM" mean a Virtual Machine for the Java(TM) platform.
2 (TableFootnote) The settings on your browser might differ from these settings.