.'" t
."
." Copyright 2004-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 jinfo 1 "05 Aug 2006"
." Generated by html2roff

.LP
.SH NAME
jinfo \- Configuration Info
.LP
.SH "SYNOPSIS"
.LP

.LP
.nf
\f3
.fl
\fP\f3jinfo\fP [ option ] pid
.fl
\f3jinfo\fP [ option ] executable core
.fl
\f3jinfo\fP [ option ] [server\-id@]remote\-hostname\-or\-IP 
.fl
.fi

.LP
.SH "PARAMETERS"
.LP

.LP
.TP 3
option 
Options are mutually exclusive. Option, if used, should follow immediately after the command name. 
.TP 3
pid 
process id for which the configuration info is to be printed. The process must be a Java process. To get a list of Java processes running on a machine, jps may be used.   
.TP 3
executable 
Java executable from which the core dump was produced.   
.TP 3
core 
core file for which the configuration info is to be printed.   
.TP 3
remote\-hostname\-or\-IP 
remote debug server's (see jsadebugd) hostname or IP address.   
.TP 3
server\-id 
optional unique id, if multiple debug servers are running on the same remote host.   
.LP
.SH "DESCRIPTION"
.LP

.LP
.LP
\f3jinfo\fP prints Java configuration information for a given Java process or core file or a remote debug server. Configuration information includes Java System properties and Java virtual machine command line flags. If the given process is running on a 64\-bit VM, you may need to specify the \f2\-J\-d64\fP option, e.g.:
.br

.LP
.RS 3

.LP
jinfo \-J\-d64 \-sysprops pid
.RE
.LP
\f3NOTE \- This utility is unsupported and may or may not be available in future versions of the JDK. On Windows, jinfo only supports the \-flag option of a running process.\fP
.LP
.SH "OPTIONS"
.LP

.LP
.TP 3
<no option> 
prints both command line flags as well as System properties name, value pairs.
.br
.TP 3
\-flag name 
prints the name and value of the given command line flag.
.br
.TP 3
\-flag [+|\-]name 
enables or disables the given boolean command line flag.
.br
.TP 3
\-flag name=value 
sets the given command line flag to the specified value.
.br
.TP 3
\-flags 
prints command line flags passed to the JVM. pairs.
.br
.TP 3
\-sysprops 
prints Java System properties as name, value pairs.
.br
.TP 3
\-h 
prints a help message 
.TP 3
\-help 
prints a help message 
.LP
.SH "SEE ALSO"
.LP
.RS 3
.TP 2
*
jps 
.TP 2
*
jsadebugd 
.RE

.LP

.LP
 
