---
name: "gij-3.4"
section: "1"
platform: "linux"
package: "gij-3.4"
version: "3.4.3-13sarge1"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/gij-3.4"
---

# gij-3.4(1)

GNU interpreter for Java bytecode

## NAME

gij - GNU interpreter for Java bytecode

## SYNOPSIS

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

gij \[**-jar**\] \[**OPTION**\] ... *CLASS* \[*ARGS*...\]\
   \[**-cp** *path*\] \[**-classpath** *path*\]\
   \[**-D***name*\[=*value*\]...\]\
   \[**-ms=***number*\] \[**-mx=***number*\]\
   \[**-X***argument***\]**\
   **\[@option{--showversion**\] \[**--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

- **-cp** *path*

  - **-classpath** *path*

  Set the initial class path.  The class path is used for finding class and resource files.  If specified, this option overrides the `"CLASSPATH"` environment variable.  Note that this option is ignored if `"-jar"` is used.

- **-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.

- **-X**

  - **-X***argument*

  Supplying `"-X"` by itself will cause `"gij"` to list all the supported `"-X"` options.  Currently there are none.  Unrecognized `"-X"` options are ignored, for compatibility with other runtimes.

- **-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.

- **--showversion**

  Print version number and continue.

- **--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), [*gfdl*(7)](/gfdl/7.md), and the Info entries for *gcj* and *gcc*.

## COPYRIGHT

Copyright (c) 2001, 2002 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.2 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 man page [*gfdl*(7)](/gfdl/7.md).

(a) The FSF's Front-Cover Text is:

```
     A GNU Manual
```

(b) The FSF's Back-Cover Text is:

```
     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.
```
