.'" t
."
." Copyright 2003-2006 Sun Microsystems, Inc.  All Rights Reserved.
." DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
."
." This code is free software; you can redistribute it and/or modify it
." under the terms of the GNU General Public License version 2 only, as
." published by the Free Software Foundation.
."
." This code is distributed in the hope that it will be useful, but WITHOUT
." ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
." FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
." version 2 for more details (a copy is included in the LICENSE file that
." accompanied this code).
."
." You should have received a copy of the GNU General Public License version
." 2 along with this work; if not, write to the Free Software Foundation,
." Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
."
." Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
." CA 95054 USA or visit www.sun.com if you need additional information or
." have any questions.
." 
." `
.TH javaws 1 "05 Aug 2006"
." Generated by html2roff

.LP

.LP
.SH NAME
\f2javaws\fP Command Line
.LP

.LP
.LP
\ 
.LP
.SS 
NAME
.LP

.LP
.LP
\f2javaws\fP \- Java Web Start launcher command
.LP
.SS 
SYNOPSIS
.LP

.LP
.LP
\f2javaws [ options ] [ URL ]\fP
.LP
.SS 
PARAMETERS
.LP

.LP
.LP
\f2options\fP
.LP
.RS 3

.LP
.LP
Command\-line options. Options may be in any order. For a discussion of the various options, see OPTIONS below.
.LP
.RE
.LP
\f2URL\fP
.LP
.RS 3

.LP
.LP
Uniform Resource Locator (\f2URL\fP) of the JNLP (Java Net\-work Launching Protocol) file.
.LP
.RE
.SS 
DESCRIPTION
.LP

.LP
.LP
The \f2javaws\fP command launches Java Web Start, which is the reference implementation of the Java Network Launching Protocol (JNLP). Java Web Start launches Java applications/applets hosted on a network.
.LP
.LP
Without any options \f2javaws\fP will launch the Java JNLP Application Manager, from which users can launch applications/applet or configure Java Web Start.
.LP
.LP
If a \f2URL\fP for a JNLP file is specified, \f2javaws\fP will launch the Java application/applet specified in the JNLP file.
.LP
.SS 
OPTIONS
.LP

.LP
.LP
The \f2javaws\fP launcher has a set of options that are supported in the current release. However, the options may be removed in a future release. All \f2\-X\fP options are non\-standard and subject to change.
.LP
.LP
\f2\-offline\fP
.LP
.RS 3

.LP
.LP
Runs Java Web Start in offline mode.
.LP
.RE
.LP
\f2\-uninstall <URL>\fP
.LP
.RS 3

.LP
.LP
Removes a specific application/applet from the user's cache, as indicated by the URL for the JNLP file. If \f2<URL>\fP is not specified, the entire cache is removed. Java Web Start will exit after the command is completed.
.LP
.RE
.LP
\f2\-updateVersions\fP
.LP
.RS 3

.LP
.LP
Updates the Java Web Start configuration file based on the current machine's settings. Java Web Start will exit after the command is completed.
.LP
.RE
.LP
\f2\-Xclearcache\fP
.LP
.RS 3

.LP
.LP
Clears the user's cache. Java Web Start will exit after the command is completed.
.LP
.RE
.LP
\f2\-Xnosplash\fP
.LP
.RS 3

.LP
.LP
Disables the display of the initial splash screen.
.LP
.RE
.LP
\f2\-import\fP
.LP
.RS 3

.LP
.LP
Imports the application specified by URL into the user's cache but does not run it.
.LP
.RE
.LP
\f2\-silent\fP
.LP
.RS 3

.LP
.LP
When used with the \f2\-import\fP option, imports in silent mode; i.e., there will be no UI pop up. The process exit code will be either 0 if successful or 1 if not.
.LP
.RE
.LP
\f2\-codebase <url>\fP
.LP
.RS 3

.LP
.LP
Replaces the codebase with \f2<url>\fP in the jnlp file specified when importing the resources. \f2<url>\fP must be a valid \f2URL\fP.
.LP
.RE
.LP
\f2\-system\fP
.LP
.RS 3

.LP
.LP
Uses the system cache instead of the user cache.
.LP
.RE
.LP
\f2\-shortcut\fP
.LP
.RS 3

.LP
.LP
Allows the creation of shortcuts during silent import.
.LP
.RE
.LP
\f2\-association\fP
.LP
.RS 3

.LP
.LP
Allows the creation of associations during silent import.
.LP
.RE
.LP
\f2\-open <arguments>\fP
.LP
.RS 3

.LP
.LP
If specified, replaces the arguments in the jnlp file with \f2\-open <arguments>\fP.
.LP
.RE
.LP
\f2\-print <arguments>\fP
.LP
.RS 3

.LP
.LP
If specified, replaces the arguments in the jnlp file with \f2\-print <arguments>\fP.
.LP
.RE
.LP
\f2\-online\fP
.LP
.RS 3

.LP
.LP
Runs in online mode (default behavior).
.LP
.RE
.LP
\f2\-viewer\fP
.LP
.RS 3

.LP
.LP
Runs the Java Application Cache Viewer (default if no URL is specified).
.LP
.RE
.LP
\f2\-userConfig <property name>\fP
.LP
.RS 3

.LP
.LP
Clears the specified deployment property.
.LP
.RE
.LP
\f2\-userConfig <property name> <property value>\fP
.LP
.RS 3

.LP
.LP
Sets the specified deployment property to the specified value.
.LP
.RE
.LP
\f2\-wait\fP
.LP
.RS 3

.LP
.LP
If specified, the \f2javaws\fP process will not exit until the application exits.
.LP
.RE
.LP
\ 
.LP
.SS 
FILES
.LP

.LP
.LP
For information about the user and system cache and deployment.properties files, see 
.na
\f2System\- and User\-Level Properties\fP @
.fi
http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment\-guide/properties.html.
.LP
.SS 
MORE INFORMATION
.LP

.LP
.LP
For more information about Java Web Start, see 
.na
\f2Java Web Start version 1.5.0\fP @
.fi
http://java.sun.com/javase/6/docs/technotes/guides/javaws/index.html.
.LP
.RS 3

.LP
.LP
\ 
.LP
.RE
 
