The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available.
See Java Language Changes for a summary of updated language features in Java SE 9 and subsequent releases.
See JDK Release Notes for information about new features, enhancements, and removed or deprecated options for all JDK releases.
To deploy your Java Web Start application, first compile the source code, package it as a JAR file, and sign the JAR file.
Java Web Start applications are launched by using the Java Network Launch Protocol (JNLP). Hence, you must create a JNLP file to deploy your application.
The Deployment Toolkit script contains useful JavaScript functions that can be used to deploy Java Web Start applications on a web page.
If you are unfamiliar with these deployment technologies, review the Deployment In-Depth lesson before proceeding.
Here are some step-by-step instructions to package and deploy your application. The Dynamic Tree Demo application is used to illustrate the deployment of Java Web Start applications. You might want to set up build scripts to execute some of the following steps.
Click the following Launch button to launch the Dynamic Tree Demo application.
In the Dynamic Tree Demo application, the compiled classes are placed in the build/classes/webstartComponentArch
directory.
For the DynamicTree Demo applet, create a file named mymanifest.txt
in the build/classes
directory, and add the Permissions
, Codebase
, and Application-Name
attributes. The applet does not require access to the user's system resources, so use sandbox
for the permissions. Use the domain from which you will load the sample for the code base, for example, myserver.com
. Add the following attributes to the mymanifest.txt
file.
Permissions: sandbox Codebase: myserver.com Application-Name: Dynamic Tree Demo
Other manifest attributes are available to restrict an applet to using only trusted code, and to provide security for applets that need to make calls between privileged Java code and sandbox Java code, or have JavaScript code that calls the applet. See the Enhancing Security with Manifest Attributes lesson to learn more about the manifest attributes that are available.
mymanifest.txt
file that you created in the previous step.
For example, the following command creates a JAR file with the class files in the build/classes/webstartComponentArch
directory and the manifest file in the build/classes
directory.
% cd build/classes % jar cvfm DynamicTreeDemo.jar mymanifest.txt webstartComponentArch
See the Packaging Programs in JAR Files lesson to learn more about creating and using JAR files.
See the Signing JAR Files lesson for more information.
If you want to use a signed JNLP file for security, create the JNLP file as described in the next step and include it in the JAR file before the JAR file is signed. See Signed JNLP Files in the Java Platform, Standard Edition Deployment Guide for information.
Here is the JNLP file that is used to launch the Dynamic Tree Demo application. Permissions are not requested for this application so it runs in the security sandbox. The source for
follows:dynamictree_webstart.jnlp
<?xml version="1.0" encoding="UTF-8"?> <jnlp spec="1.0+" codebase= "https://docs.oracle.com/javase/tutorialJWS/samples/deployment/webstart_ComponentArch_DynamicTreeDemo" href="dynamictree_webstart.jnlp"> <information> <title>Dynamic Tree Demo</title> <vendor>Dynamic Team</vendor> </information> <resources> <!-- Application Resources --> <j2se version="1.7+" href="http://java.sun.com/products/autodl/j2se"/> <jar href="DynamicTreeDemo.jar" main="true" /> </resources> <application-desc name="Dynamic Tree Demo Application" main-class= "webstartComponentArch.DynamicTreeApplication" width="300" height="300"> </application-desc> <update check="background"/> </jnlp>
codebase
and href
attributes are optional when deploying Java Web Start applications that will run on at least the Java SE 6 update 18 release or later. You must specify the codebase
and href
attributes when deploying Java Web Start applications that will run with previous releases of the Java Runtime Environment software.
In the example, the Dynamic Tree Demo application is deployed in
.JavaWebStartAppPage.html
<body> <!-- ... --> <script src= "https://www.java.com/js/deployJava.js"></script> <script> // using JavaScript to get location of JNLP // file relative to HTML page var dir = location.href.substring(0, location.href.lastIndexOf('/')+1); var url = dir + "dynamictree_webstart.jnlp"; deployJava.createWebStartLaunchButton(url, '1.7.0'); </script> <!-- ... --> </body>
If you are not sure whether your end users will have the JavaScript interpreter enabled in their browsers, you can deploy the Java Web Start application directly by creating a link to the JNLP file as follows:
<a href="/absolute path to JNLP file/dynamictree_webstart.jnlp">Launch Notepad Application</a>
If you deploy the Java Web Start application with a direct link, you cannot take advantage of the additional checks that the Deployment Toolkit functions provide. See Deploying a Java Web Start Application in the Deployment In-Depth lesson for details.
For this example, place DynamicTreeDemo.jar
, dynamictree_webstart.jnlp
, and JavaWebStartAppPage.html
in the same directory on the local machine or a web server. A web server is preferred. To run from the local machine, you must add your application to the exception site list, which is managed from the Security tab of the Java Control Panel.
Download source code for the Dynamic Tree Demo example to experiment further.