." Copyright 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
." or visit www.oracle.com if you need additional information or have any
." questions.
."
.TH jconsole 1 "04 May 2009"
." Generated from HTML by html2man (author: Eric Armstrong)

.LP
.SH "Name"
jconsole \- Java Monitoring and Management Console
.LP
.SH "SYNOPSIS"
.LP

.LP
.nf
\f3
.fl
\fP\f3jconsole\fP [ \f2options\fP ] [ connection ... ]
.fl

.fl
.fi

.LP
.SH "PARAMETERS"
.LP

.LP
.RS 3
.TP 3
options 
Options, if used, should follow immediately after the command name. 
.br
.TP 3
connection = pid | host:port | jmxUrl 
.RS 3
\f2pid\fP\ \ \  Process ID of a local Java VM. The Java VM must be running with the same user ID as the user ID running jconsole. See 
.na
\f2JMX Monitoring and Management\fP @
.fi
http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html for details. 
.br
\f2host\fP:\f2port\fP\ \  Name of the host system on which the Java VM is running and the port number specified by the system property \f2com.sun.management.jmxremote.port\fP when the Java VM was started. See 
.na
\f2JMX Monitoring and Management\fP @
.fi
http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html for details. 
.br
\f2jmxUrl\fP\ \  Address of the JMX agent to be connected to as described in 
.na
\f2JMXServiceURL\fP @
.fi
http://java.sun.com/javase/6/docs/api/javax/management/remote/JMXServiceURL.html. 
.RE
.RE

.LP
.SH "DESCRIPTION"
.LP

.LP
.LP
The \f3jconsole\fP command launches a graphical console tool that enables you to monitor and manage Java applications and virtual machines on a local or remote machine.
.LP
.LP
On Windows, \f3jconsole\fP does not associate with a console window. It will, however, display a dialog box with error information if the \f3jconsole\fP command fails for some reason.
.LP
.SH "OPTIONS"
.LP

.LP
.RS 3
.TP 3
\-interval=n 
Set the update interval to \f2n\fP seconds (default is 4 seconds). 
.TP 3
\-notile\  
Do not tile windows initially (for two or more connections). 
.TP 3
\-pluginpath\  plugins 
Specify a list of directories or JAR files which are searched for JConsole plugins. The \f2plugins\fP path should contain a provider\-configuration file named:
.br
.nf
\f3
.fl
   META\-INF/services/com.sun.tools.jconsole.JConsolePlugin
.fl
\fP
.fi
.LP
containing one line for each plugin specifying the fully qualified class name of the class implementing the 
.na
\f2com.sun.tools.jconsole.JConsolePlugin\fP @
.fi
http://java.sun.com/javase/6/docs/jdk/api/jconsole/spec/com/sun/tools/jconsole/JConsolePlugin.html class.  
.TP 3
\-version\  
Output version information and exit. 
.TP 3
\-help\  
Output help message and exit. 
.TP 3
\-J<flag>\  
Pass <flag> to the Java virtual machine on which jconsole is run. 
.RE

.LP
.SH "SEE ALSO"
.LP
.RS 3
.TP 2
o
.na
\f2Using JConsole\fP @
.fi
http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html 
.TP 2
o
.na
\f2Monitoring and Management for Java Platform\fP @
.fi
http://java.sun.com/javase/6/docs/technotes/guides/management/index.html 
.RE

.LP

.LP
 
