." 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 jinfo 1 "04 May 2009"
." Generated from HTML by html2man (author: Eric Armstrong)

.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
.RS 3
.TP 3
option 
Options are mutually exclusive. Option, if used, should follow immediately after the command name. 
.RS 3
.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(1) may be used. 
.RE
.RS 3
.TP 3
executable 
Java executable from which the core dump was produced. 
.RE
.RS 3
.TP 3
core 
core file for which the configuration info is to be printed. 
.RE
.RS 3
.TP 3
remote\-hostname\-or\-IP 
remote debug server's (see jsadebugd(1)) hostname or IP address. 
.RE
.RS 3
.TP 3
server\-id 
optional unique id, if multiple debug servers are running on the same remote host. 
.RE
.RE

.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. In Windows Systems where dbgeng.dll is not present, 'Debugging Tools For Windows' need to be installed to have these tools working. Also, \fP\f4PATH\fP\f3 environment variable should contain the location of \fP\f4jvm.dll\fP\f3 used by the target process or the location from which the Crash Dump file was produced.\fP
.LP
.LP
\f3For example, \fP\f4set PATH=<jdk>\\jre\\bin\\client;%PATH%\fP
.LP
.SH "OPTIONS"
.LP

.LP
.RS 3
.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 
.RE

.LP
.SH "SEE ALSO"
.LP
.RS 3
.TP 2
o
jps(1) 
.TP 2
o
jsadebugd(1) 
.RE

.LP

.LP
 
