---
name: "gij-3.0"
section: "1"
platform: "linux"
package: "gij-3.0"
version: "1:3.0.4-7"
release: "Debian 3.0 (Woody)"
platforms: ["linux"]
url: "https://new.carta.tech/gij-3.0"
---

# gij-3.0(1)

GNU interpreter for Java bytecode

## NAME

gij - GNU interpreter for Java bytecode

## SYNOPSIS

gij \[**OPTION**\] ... *JARFILE* \[*ARGS*...\]

gij \[**-jar**\] \[**OPTION**\] ... *CLASS* \[*ARGS*...\]\
   \[**-D***name*\[=*value*\]...\]\
   \[**-ms=***number*\] \[**-mx=***number*\]\
   \[**--version**\] \[**--help**\]

## DESCRIPTION

`"gij"` is a Java bytecode interpreter included with `"libgcj"`. `"gij"` 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 `"gcj"`.

The primary argument to `"gij"` is the name of a class or, with `"-jar"`, a jar file.  Options before this argument are interpreted by `"gij"`; remaining options are passed to the interpreted program.

If a class name is specified and this class does not have a `"main"` method with the appropriate signature (a `"static void"` method with a `"String[]"` as its sole argument), then `"gij"` will print an error and exit.

If a jar file is specified then `"gij"` will use information in it to determine which class' `"main"` method will be invoked.

`"gij"` will invoke the `"main"` method with all the remaining command-line options.

Note that `"gij"` is not limited to interpreting code.  Because `"libgcj"` includes a class loader which can dynamically load shared objects, it is possible to give `"gij"` the name of a class which has been compiled and put into a shared library on the class path.

## OPTIONS

- **-D***name***\[=***value***\]**

  This defines a system property named *name* with value *value*. If *value* 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 `"java.lang.System.getProperty"` method.

- **-ms=***number*

  This sets the initial heap size

- **-mx=***number*

  This sets the maximum heap size.

- **-jar**

  This indicates that the name passed to `"gij"` should be interpreted as the name of a jar file, not a class.

- **--help**

  Print help, then exit.

- **--version**

  Print version number, then exit.

## SEE ALSO

[*gcc*(1)](/gcc/1.md), [*gcj*(1)](/gcj/1.md), [*gcjh*(1)](/gcjh/1.md), [*jv-scan*(1)](/jv-scan/1.md), [*jcf-dump*(1)](/jcf-dump/1.md), and the Info entries for *gcj* and *gcc*.

## COPYRIGHT

Copyright (C) 2001 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being \`\`GNU General Public License'', 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 section entitled \`\`GNU Free Documentation License''.
