.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.el \{\
.    de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "GIJ 1"
.TH GIJ 1 "2011-04-28" "gcc-4.5.3" "GNU"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
gij \- GNU interpreter for Java bytecode
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
gij [\fB\s-1OPTION\s0\fR] ... \fI\s-1JARFILE\s0\fR [\fI\s-1ARGS\s0\fR...]
.PP
gij [\fB\-jar\fR] [\fB\s-1OPTION\s0\fR] ... \fI\s-1CLASS\s0\fR [\fI\s-1ARGS\s0\fR...]
  [\fB\-cp\fR \fIpath\fR] [\fB\-classpath\fR \fIpath\fR]
  [\fB\-D\fR\fIname\fR[=\fIvalue\fR]...]
  [\fB\-ms=\fR\fInumber\fR] [\fB\-mx=\fR\fInumber\fR]
  [\fB\-X\fR\fIargument\fR] [\fB\-verbose\fR] [\fB\-verbose:class\fR]
  [\fB\-\-showversion\fR] [\fB\-\-version\fR] [\fB\-\-help\fR][\fB\-?\fR]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\f(CW\*(C`gij\*(C'\fR is a Java bytecode interpreter included with \f(CW\*(C`libgcj\*(C'\fR.
\&\f(CW\*(C`gij\*(C'\fR is not available on every platform; porting it requires a
small amount of assembly programming which has not been done for all the
targets supported by \fBgcj\fR.
.PP
The primary argument to \f(CW\*(C`gij\*(C'\fR is the name of a class or, with
\&\f(CW\*(C`\-jar\*(C'\fR, a jar file.  Options before this argument are interpreted
by \f(CW\*(C`gij\*(C'\fR; remaining options are passed to the interpreted program.
.PP
If a class name is specified and this class does not have a \f(CW\*(C`main\*(C'\fR
method with the appropriate signature (a \f(CW\*(C`static void\*(C'\fR method with
a \f(CW\*(C`String[]\*(C'\fR as its sole argument), then \f(CW\*(C`gij\*(C'\fR will print an
error and exit.
.PP
If a jar file is specified then \f(CW\*(C`gij\*(C'\fR will use information in it to
determine which class' \f(CW\*(C`main\*(C'\fR method will be invoked.
.PP
\&\f(CW\*(C`gij\*(C'\fR will invoke the \f(CW\*(C`main\*(C'\fR method with all the remaining
command-line options.
.PP
Note that \f(CW\*(C`gij\*(C'\fR is not limited to interpreting code.  Because
\&\f(CW\*(C`libgcj\*(C'\fR includes a class loader which can dynamically load shared
objects, it is possible to give \f(CW\*(C`gij\*(C'\fR the name of a class which has
been compiled and put into a shared library on the class path.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-cp\fR \fIpath\fR" 4
.IX Item "-cp path"
.PD 0
.IP "\fB\-classpath\fR \fIpath\fR" 4
.IX Item "-classpath path"
.PD
Set the initial class path.  The class path is used for finding
class and resource files.  If specified, this option overrides the
\&\f(CW\*(C`CLASSPATH\*(C'\fR environment variable.  Note that this option is
ignored if \f(CW\*(C`\-jar\*(C'\fR is used.
.IP "\fB\-D\fR\fIname\fR\fB[=\fR\fIvalue\fR\fB]\fR" 4
.IX Item "-Dname[=value]"
This defines a system property named \fIname\fR with value \fIvalue\fR.
If \fIvalue\fR is not specified then it defaults to the empty string.
These system properties are initialized at the program's startup and can
be retrieved at runtime using the \f(CW\*(C`java.lang.System.getProperty\*(C'\fR
method.
.IP "\fB\-ms=\fR\fInumber\fR" 4
.IX Item "-ms=number"
Equivalent to \f(CW\*(C`\-Xms\*(C'\fR.
.IP "\fB\-mx=\fR\fInumber\fR" 4
.IX Item "-mx=number"
Equivalent to \f(CW\*(C`\-Xmx\*(C'\fR.
.IP "\fB\-noverify\fR" 4
.IX Item "-noverify"
Do not verify compliance of bytecode with the \s-1VM\s0 specification. In addition,
this option disables type verification which is otherwise performed on BC-ABI
compiled code.
.IP "\fB\-X\fR" 4
.IX Item "-X"
.PD 0
.IP "\fB\-X\fR\fIargument\fR" 4
.IX Item "-Xargument"
.PD
Supplying \f(CW\*(C`\-X\*(C'\fR by itself will cause \f(CW\*(C`gij\*(C'\fR to list all the
supported \f(CW\*(C`\-X\*(C'\fR options.  Currently these options are supported:
.RS 4
.IP "\fB\-Xms\fR\fIsize\fR" 4
.IX Item "-Xmssize"
Set the initial heap size.
.IP "\fB\-Xmx\fR\fIsize\fR" 4
.IX Item "-Xmxsize"
Set the maximum heap size.
.IP "\fB\-Xss\fR\fIsize\fR" 4
.IX Item "-Xsssize"
Set the thread stack size.
.RE
.RS 4
.Sp
Unrecognized \f(CW\*(C`\-X\*(C'\fR options are ignored, for compatibility with
other runtimes.
.RE
.IP "\fB\-jar\fR" 4
.IX Item "-jar"
This indicates that the name passed to \f(CW\*(C`gij\*(C'\fR should be interpreted
as the name of a jar file, not a class.
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD 0
.IP "\fB\-?\fR" 4
.IX Item "-?"
.PD
Print help, then exit.
.IP "\fB\-\-showversion\fR" 4
.IX Item "--showversion"
Print version number and continue.
.IP "\fB\-\-fullversion\fR" 4
.IX Item "--fullversion"
Print detailed version information, then exit.
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
Print version number, then exit.
.IP "\fB\-verbose\fR" 4
.IX Item "-verbose"
.PD 0
.IP "\fB\-verbose:class\fR" 4
.IX Item "-verbose:class"
.PD
Each time a class is initialized, print a short message on standard error.
.PP
\&\f(CW\*(C`gij\*(C'\fR also recognizes and ignores the following options, for
compatibility with existing application launch scripts:
\&\f(CW\*(C`\-client\*(C'\fR, \f(CW\*(C`\-server\*(C'\fR, \f(CW\*(C`\-hotspot\*(C'\fR, \f(CW\*(C`\-jrockit\*(C'\fR,
\&\f(CW\*(C`\-agentlib\*(C'\fR, \f(CW\*(C`\-agentpath\*(C'\fR, \f(CW\*(C`\-debug\*(C'\fR, \f(CW\*(C`\-d32\*(C'\fR,
\&\f(CW\*(C`\-d64\*(C'\fR, \f(CW\*(C`\-javaagent\*(C'\fR, \f(CW\*(C`\-noclassgc\*(C'\fR, \f(CW\*(C`\-verify\*(C'\fR,
and \f(CW\*(C`\-verifyremote\*(C'\fR.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIgcc\fR\|(1), \fIgcj\fR\|(1), \fIgcjh\fR\|(1), \fIjcf\-dump\fR\|(1), \fIgfdl\fR\|(7),
and the Info entries for \fIgcj\fR and \fIgcc\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no
Invariant Sections, the Front-Cover Texts being (a) (see below), and
with the Back-Cover Texts being (b) (see below).
A copy of the license is included in the
man page \fIgfdl\fR\|(7).
.PP
(a) The \s-1FSF\s0's Front-Cover Text is:
.PP
.Vb 1
\&     A GNU Manual
.Ve
.PP
(b) The \s-1FSF\s0's Back-Cover Text is:
.PP
.Vb 3
\&     You have freedom to copy and modify this GNU Manual, like GNU
\&     software.  Copies published by the Free Software Foundation raise
\&     funds for GNU development.
.Ve
