Documentation Contents
Java Platform, Standard Edition Deployment Guide
Next
Contents
Preface
Audience
Documentation Accessibility
Related Documents
Conventions
1
What's New
1.1
Enhancements in JDK 8u40
1.2
Enhancement in JDK 8u31
1.3
Enhancements in JDK 8u20
1.4
Enhancements in JDK 8u11
1.5
Enhancements in JDK 8u5
1.6
Enhancements in JDK 8
Part I Deployment Basics
2
Getting Started
2.1
Basic Steps
2.2
Choose the Execution Environment
2.3
Create the Package
2.3.1
Packaging Tools
2.4
Create the Web Page
2.5
Distribute Your Application
2.6
Beyond the Basics
3
Application Execution Modes
3.1
Execution Modes
3.2
Understanding Feature Differences
3.2.1
Preloader Support for JavaFX Applications
3.2.2
Built-In Proxy Support
3.2.3
Desktop Integration via Shortcut
3.2.4
Run in Sandbox
3.2.5
Auto-Updates
3.2.6
Deployment Toolkit
3.2.7
Communicate to the Host Web Page
3.2.8
Managing Platform Dependencies
4
Application Startup
4.1
User Experience Considerations
4.2
Application Startup Process, Experience, and Customization
4.2.1
Startup Process
4.2.2
Default User Experience
4.2.3
Customization Options for JavaFX Applications
4.2.4
Customization Options for Java Applets
4.3
Helping Users Start the Application
4.3.1
No JRE
4.3.2
Runtime Errors
4.3.2
Multiple JREs Installed
Part II Packaging
5
Packaging Basics
5.1
Java Packaging Overview
5.2
Base Application Package
5.3
Overview of Packaging Tasks
5.3.1
Java Packaging Tools
5.4
Style Sheet Conversion
5.5
Create the Main Application JAR File
5.6
Sign the JAR Files
5.7
Run the Deploy Task or Command
5.7.1
Configure the Deployment Descriptor
5.7.2
Application Resources
5.7.3
Package Custom JavaScript Actions
5.7.4
Web Page Templates
5.8
Packaging Cookbook
5.8.1
Passing Parameters to the Application
5.8.2
Customizing JVM Setup
5.8.3
Packaging Complex Applications
5.8.4
Publishing an Application that Fills the Browser Window
5.9
Performance Tuning for Web Deployment
5.9.1
Background Update Check for the Application
5.9.2
Embed the Deployment Descriptor into the Web Page
5.9.3
Embed Signing Certificate into Deployment Descriptor
5.9.4
Use Alternative Signing Method
6
JavaFX in Swing Applications
6.1
Overview
6.2
Packaging with JavaFX Ant Tasks
6.2.1
Enabling an HTML Splash Screen
6.3
Packaging without the Packaging Tools
6.3.1
Using the Deployment Toolkit
7
Self-Contained Application Packaging
7.1
Introduction
7.2
Benefits and Drawbacks of Self-Contained Application Packages
7.3
Basics
7.3.1
Self-Contained Application Structure
7.3.2
Basic Build
7.3.3
Customizing the Package Using Drop-In Resources
7.3.4
Customization Options
7.3.5
Platform-Specific Customization for Basic Packages
7.3.6
Passing Arguments to a Self-Contained Application
7.3.7
Associating Files with a Self-Contained Application
7.3.8
Supporting Multiple Entry Points
7.4
Installable Packages
7.4.1
EXE Package
7.4.2
MSI Package
7.4.3
DMG Package
7.4.4
Linux Packages
7.5
Working Through a Deployment Scenario
8
Packaging for Distribution on a Mac
9
The Java Packager Tool
10
JavaFX Ant Tasks
10.1
Requirements to Run JavaFX Ant Tasks
10.2
JavaFX Ant Elements
10.3
Using JavaFX Ant Tasks
10.4
Ant Script Examples
10.4.1
Deploying the JavaFX Hello World Example
10.4.2
Deploying the JavaFX Hello World Example as a Self-Contained Application
10.4.3
Deploying a JavaFX Application with External JAR Files
10.4.4
Overriding JVM Options for Self-Contained Applications
JavaFX Ant Task Reference
JavaFX Ant Helper Parameter Reference
Part III Development
11
Java Rich Internet Applications
11.1
About Java RIAs
11.1.1
Design
11.1.2
Development
11.1.3
Deployment
11.2
Rich Internet Applications Decision Guide
11.3
Rich Internet Applications Deployment Advice
11.3.1
Unified Deployment Mechanism - Java Network Launch Protocol
11.3.2
Deployment Toolkit Script
11.3.3
Other Deployment Considerations
11.3.4
Other Resources
11.4
Properties That Affect the Behavior of Rich Internet Applications
12
Applet Development Guide
12.1
Overview
12.2
Java Plug-In and Applet Architecture
12.2.1
Java Runtime Environment
12.2.2
Java Runtime Environment Version Selection
12.2.3
Thread Considerations
12.2.4
Classloader Cache and Interaction between Applets
12.2.5
Applet Garbage Collection
12.2.6
Applet Privileges
12.2.7
Proxy Configuration
12.2.8
Security
12.3
Applet Deployment Parameters
12.3.1
Deployment using JNLP
12.3.2
Loading Screen
12.3.3
Command-line Arguments
12.3.4
JRE Version Selection
12.3.5
Class Loader Caching
12.3.6
Security
12.3.7
Java Cache
12.4
Applet Status And Event Handlers
12.4.1
Applet Status
12.4.2
Applet Event Handlers
12.5
Migrating Java Applets to the Java Network Launching Protocol
12.5.1
Advantages of Migrating to JNLP
12.5.2
Using JNLP with an Applet
12.5.3
Migrating an Existing Java Applet
13
Preloaders for JavaFX Applications
13.1
Implementing a Custom Preloader
13.2
Packaging an Application with a Preloader
13.2.1
Packaging a Preloader Application in NetBeans IDE
13.2.2
Packaging a Preloader Application in an Ant Task
13.3
Preloader Code Examples
13.3.1
Show the Preloader Only if Needed
13.3.2
Enhance Visual Transitions
13.3.3
Using JavaScript with a Preloader
13.3.4
Using a Preloader to Display the Application Initialization Progress
13.3.5
Cooperation of Preloader and Application: A Login Preloader
13.3.6
Cooperation of Preloader and Application: Sharing the Stage
13.3.7
Customizing Error Messaging
13.4
Performance Tips
14
Customizing the Loading Experience
14.1
The RIA Loading Experience
14.2
The RIA Loading Process
14.3
Customization Options
14.3.1
Adding a Splash Screen
14.3.2
Implementing a Customized Loading Progress Indicator
14.3.3
The javax.jnlp.DownloadServiceListener Interface
14.3.4
Constructors of the Loading Progress Indicator Class
14.3.5
Methods of the javax.jnlp.DownloadServiceListener Interface
14.3.6
Specifying the Custom Progress Indicator in the JNLP File
14.3.7
How the RIA Software Communicates Progress
14.4
Best Practices and Tips
15
Customizing JVM Options in Self-Contained Applications
15.1
Overview of the UserJvmOptionsService API
15.2
Using the UserJvmOptionsService API to Customize JVM Options
15.2.1
Instantiating UserJvmOptionsService
15.2.2
Getting Current Values of JVM Options
15.2.3
Getting Default Values of JVM Options
15.2.4
Setting New Values for JVM Options
15.2.5
Example Using the UserJvmOptionsService API
16
Java and JavaScript
16.1
Accessing an Application from a Web Page
16.2
Accessing the Host Web Page from a Java Applet
16.3
Accessing the Host Web Page from an Embedded JavaFX Application
16.4
Advanced topics
16.5
Threading
16.6
Security
16.7
Tab Pane Example
17
Signed JNLP Files
17.1
Signing a JNLP File
17.2
Signing a JAR File with a JNLP Template
18
Coding Tips
18.1
Detecting Embedded Applications
18.2
Accessing Application Parameters
18.3
Using JavaFX Host Services
18.4
Loading Resources
18.5
Managing the Stage Size of JavaFX Applications
19
Deployment in the Browser
19.1
API Overview
19.1.1
Application Descriptor (dtjava.App)
19.1.2
Platform (dtjava.Platform)
19.2
Callbacks
19.2.1
onDeployError
19.2.2
onGetNoPluginMessage
19.2.3
onGetSplash
19.2.4
onInstallFinished
19.2.5
onInstallNeeded
19.2.6
onInstallStarted
19.2.7
onJavascriptReady
19.2.8
onRuntimeError
19.3
Examples
19.3.1
Embedded Application Starts After the DOM Tree Is Constructed
19.3.2
Launch a Web Start Application from a Web Page
19.3.3
Pass Parameters to a Web Application
19.3.4
Specify Platform Requirements and Pass JVM Options
19.3.5
Access Your Code from JavaScript
19.3.6
Disable the HTML Splash Screen
19.3.7
Add a Custom HTML Splash Screen
19.3.8
Create a Handler for an Unsupported Platform
19.3.9
Check for Presence of JavaFX Runtime
Part IV Configuring and Monitoring Deployment
20
Java Control Panel
20.1
General
20.1.1
About
20.1.2
Network Settings
20.1.3
Temporary Internet Files
20.2
Update
20.2.1
Update Tab Options
20.2.2
Java Update Scheduler
20.3
Java
20.3.1
Java Runtime Environment Settings
20.3.2
Java Runtime Parameters
20.4
Security
20.4.1
Security Level
20.4.2
Exception Site List
20.4.3
Deployment Rule Set
20.4.4
Restore Security Prompts
20.4.5
Manage Certificates
20.5
Advanced
20.5.1
Debugging
20.5.2
Java Console
20.5.3
Default Java for Browsers
20.5.4
Shortcut Creation
20.5.5
JNLP File/MIME Association
20.5.6
Application Installation
20.5.7
Secure Execution Environment
20.5.8
Mixed code (sandboxed vs. trusted) security verification
20.5.9
Perform certificate revocation checks on
20.5.10
Check for certificate revocation using
20.5.11
Advanced Security Settings
20.5.12
Miscellaneous
20.5.13
Command to launch default browser (Solaris, Linux, or OS X only)
21
Deployment Configuration File and Properties
21.1
Deployment Configuration File
(deployment.properties)
21.1.1
User Level
21.1.2
System Level
21.2
Deployment Configuration Properties
21.2.1
Infrastructure
21.2.2
Certificate stores and policy files
21.2.3
Security Access And Control Settings
21.2.4
Networking
21.2.5
Cache and Optional Package Repository
21.2.6
Java Console
21.2.7
Tracing and Logging
21.2.8
Java Web Start
21.2.9
Browser Selection and Path
21.2.10
Check for update Timeout
21.2.11
SSLv3 is disabled by default
22
Java Console, Tracing, and Logging
22.1
Debugging Options in the Java Console
22.2
Tracing and Logging
22.2.1
Tracing
22.2.2
Logging
22.2.3
File Names
22.2.4
File Locations
Part V Security
23
Setting the Security Level of the Java Client
23.1
Setting the Security Level of the Java Client
23.1.1
Ensuring the Most Secure JRE
23.1.2
JRE Expiration Date
23.1.3
Disabling Java in the Browser
23.1.4
Setting the Security Level
23.1.5
Security Options for a Secure Execution Environment
23.1.6
Install Options
23.1.7
RIAs with Mixed Code
23.2
Policy Files and Permissions
23.3
Property Files and Certificates
23.4
Browser Keystores
23.4.1
Internet Explorer keystore support
23.4.2
Mozilla keystore support
23.4.3
Installing JSS with Mozilla
23.5
Security Dialogs
23.5.1
Dialog Contents
23.5.2
Improving the User Experience
23.5.3
Java Control Panel Settings That Affect the Dialogs Shown
23.6
Warning Banner
23.7
More Information
24
Rich Internet Application Deployment Process
24.1
Overview of the Process
24.2
Plug-in Processing
24.3
Rules Processing
24.4
JRE Status
24.5
Digital Signature
24.6
Security Prompts
24.6.1
Normal Processing
24.6.2
Exception Site List
24.6.3
Select JRE
25
Working with Signed RIAs
25.1
Support for Dynamic Trust Management
25.2
Signing RIAs
25.2.1
Signing Tool
25.2.2
Getting Certificates
25.2.3
Bundling RIAs as JAR Files
25.2.4
Signing the JAR Files
25.2.5
Microsoft Authenticode
25.3
Deploying RIAs
25.3.1
Certificate Management
26
JAR File Manifest Attributes for Security
26.1
Permissions Attribute
26.2
Codebase Attribute
26.3
Application-Name Attribute
26.4
Application-Library-Allowable-Codebase Attribute
26.5
Caller-Allowable-Codebase Attribute
26.6
Entry-Point Attribute
26.7
Trusted-Only Attribute
26.8
Trusted-Library Attribute
26.9
Preventing RIAs from Being Repurposed
26.10
Additional Information
27
Mixing Privileged Code and Sandbox Code
27.1
Mixed Code Protection Options for Users
27.2
Deploying Privileged Applications and Applets Securely Without a Mixed Code Warning
27.2.1
Trusted-Only
Attribute
27.2.2
Trusted-Library
Attribute
27.3
Mixed Code FAQ
27.4
For More Information
28
Deployment Rule Set
28.1
Create the Rule Set
28.1.1
Define the Rules
28.1.2
Set Up Rules for Calls From JavaScript Code (LiveConnect)
28.1.3
Set Up Rules for Mixed Code
28.1.4
Get the Certificate Hash
28.2
Package and Install the Rule Set
28.3
Security Considerations
28.4
Examples
28.5
Java Deployment Rule Set DTD
29
Exception Site List
29.1
Manage the Exception Site List
29.1.1
Add a URL
29.1.2
Edit a URL
29.1.3
Remove a URL
29.2
Manage Access to the Exception Site List
Part VI Reference
30
Networking
30.1
Proxy Configuration
30.1.1
Java Control Panel
30.1.2
How Java Plug-in and Java Web Start Obtain Proxy Information From the Browser
30.1.3
Manual Proxy Configuration
30.1.4
Automatic Proxy Configuration
30.1.5
java.net.ProxySelector API
30.2
Deploying JAR Files Compressed with Pack200
30.2.1
Usage in a JNLP File
30.2.2
Usage in Applet Tag
30.3
Compression Formats for Network Deployment
30.3.1
Background
30.3.2
GZIP Compression
30.3.3
Pack200 Compression
30.3.4
Testing
30.3.5
More Information
30.3.6
Updates in Java Standard Edition 8
31
Codebase Determination
31.1
Codebase Computation Rules
31.2
Examples
32
Other Deployment Features
32.1
Protocol Support
32.1.1
HTTP and FTP
32.1.2
HTTPS
32.1.3
Socks
32.1.4
NTLM Authentication
32.2
Multi-Version Support
32.2.1
Unique MIME Type
32.2.2
Unique Java Plug-in Registry Key
32.2.3
Unique Java Plug-in Property File
32.2.4
Unique Java Plug-in Trace and Log Files
32.2.5
Unique Java Control Panel
32.2.6
Unique Registry Keys for JRE/JDK
32.2.7
Multi Version Support in Browser Sessions
32.3
System-Wide Repository (Windows only)
32.4
Applet Persistence API
32.5
Special Applet Attributes
32.5.1
image
32.5.2
boxmessage
32.5.3
boxbgcolor, boxfgcolor
32.5.4
Applet Attribute Precedence
32.5.5
Troubleshooting Scenario
33
Troubleshooting
33.1
Running Applications
33.2
Development Process Issues
33.3
Runtime Issues
33.3.1
Standalone Execution
33.3.2
Self-Contained Applications
33.3.3
Web Start
33.3.4
Applications Embedded in the Browser
33.3.5
Disabling the Autoproxy Configuration in the Code
34
Java Rich Internet Applications Enhancements in JDK 7
34.1
Enhancements in JDK 7 Update 51
34.2
Enhancements in JDK 7 Update 45
34.3
Enhancements in JDK 7 Update 40
34.4
Enhancements in JDK 7 Update 25
34.5
Enhancements in JDK 7 Update 21
34.6
Enhancements in JDK 7 Update 10
34.7
Enhancements in JDK 7 Update 6
34.8
Enhancements in JDK 7 Update 2
34.9
Enhancements in Java SE 7
Next