." Copyright (c) 2003, 2011, Oracle and/or its affiliates. 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
." or visit www.oracle.com if you need additional information or have any
." questions.
."
.TH javaws 1 "10 May 2011"

.LP
.SH "Name"
\f2javaws\fP Command Line
.LP
.SH "NAME"
.LP
.LP
\f2javaws\fP \- Java Web Start launcher command
.LP
.SH "SYNOPSIS"
.LP
.LP
\f2javaws [run\-options] <jnlp>\fP
.LP
.LP
\f2javaws [control\-options]\fP
.LP
.SH "PARAMETERS"
.LP
.LP
\f2[run\-options]\fP
.LP
.LP
Command\-line run\-options. run\-options may be in any order. For a discussion of the various run\-options, see RUN\-OPTIONS below.
.LP
.LP
\f2<jnlp>\fP
.LP
.LP
This can be either the path of, or the Uniform Resource Locater (URL) of the JNLP (Java Network Launching Protocol) file.
.LP
.LP
\f2[control\-options]\fP
.LP
.LP
Command\-line control\-options. control\-options may be in any order. For a discussion of the various control\-options, see CONTROL\-OPTIONS below.
.LP
.SH "DESCRIPTION"
.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
If a JNLP file is specified, \f2javaws\fP will launch the Java application/applet specified in the JNLP file.
.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.
.LP
.SH "RUN\-OPTIONS"
.LP
.LP
\f2\-offline\fP
.LP
.LP
Run Java Web Start in offline mode.
.LP
.LP
\f2\-Xnosplash\fP
.LP
.LP
Do not display the initial splash screen.
.LP
.LP
\f2\-open <arguments>\fP
.LP
.LP
If specified, replaces the arguments in the jnlp file with \f2\-open <arguments>\fP.
.LP
.LP
\f2\-print <arguments>\fP
.LP
.LP
If specified, replaces the arguments in the jnlp file with \f2\-print <arguments>\fP.
.LP
.LP
\f2\-online\fP
.LP
.LP
Use online mode (default behavior).
.LP
.LP
\f2\-wait\fP
.LP
.LP
If specified, the \f2javaws\fP process will not exit until the application exits. This option does not function as described on Windows platforms.
.LP
.LP
\f2\-verbose\fP
.LP
.LP
Display additional output.
.LP
.LP
\f2\-J<option>\fP
.LP
.LP
Supply options to the VM.
.LP
.LP
\f2\-system\fP
.LP
.LP
Run the application from the system cache only.
.LP
.SH "CONTROL\-OPTIONS"
.LP
.LP
\f2\-viewer\fP
.LP
.LP
Show the Cache Viewer in the Java Control Panel.
.LP
.LP
\f2\-clearcache\fP
.LP
.LP
Remove all non\-installed applications from the cache.
.LP
.LP
\f2\-userConfig <property name>\fP
.LP
.LP
Clear the specified deployment property.
.LP
.LP
\f2\-userConfig <property name> <property value>\fP
.LP
.LP
Set the specified deployment property to the specified value.
.LP
.LP
\f2\-uninstall\fP
.LP
.LP
Remove all applications from the cache.
.LP
.LP
\f2\-uninstall <jnlp>\fP
.LP
.LP
Remove the application from the cache.
.LP
.LP
\f2\-import [import\-options] <jnlp>\fP
.LP
.LP
Import the application to the cache.
.LP
.SH "IMPORT\-OPTIONS"
.LP
.LP
\f2\-silent\fP
.LP
.LP
Import silently (with no user interface).
.LP
.LP
\f2\-system\fP
.LP
.LP
Import application to the system cache.
.LP
.LP
\f2\-codebase <url>\fP
.LP
.LP
Retrieve resources from the given codebase.
.LP
.LP
\f2\-shortcut\fP
.LP
.LP
Install shortcuts as if user allowed prompt. This option has no effect unless \f2\-silent\fP option is also used.
.LP
.LP
\f2\-association\fP
.LP
.LP
Install associations as if user allowed prompt. This option has no effect unless \f2\-silent\fP option is also used.
.LP
.SH "FILES"
.LP
.LP
For information about the user and system cache and deployment.properties files, see 
.na
\f2System\- and User\-Level Properties\fP @
.fi
http://download.oracle.com/javase/7/docs/technotes/guides/deployment/deployment\-guide/properties.html.
.LP
.SH "MORE INFORMATION"
.LP
.LP
For more information about Java Web Start, see 
.na
\f2Java Web Start\fP @
.fi
http://download.oracle.com/javase/7/docs/technotes/guides/javaws/index.html.
.LP
 
