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

# gcjh-3.0(1)

generate header files from Java class files

## NAME

gcjh - generate header files from Java class files

## SYNOPSIS

gcjh \[**-stubs**\] \[**-jni**\]\
     \[**-add** *text*\] \[**-append** *text*\] \[**-friend** *text*\]\
     \[**-preprend** *text*\]\
     \[**--classpath**=*path*\] \[**--CLASSPATH**=*path*\]\
     \[**-I***dir*...\] \[**-d** *dir*...\]\
     \[**-o** *file*\] \[**-td** *dir*\]\
     \[**-M**\] \[**-MM**\] \[**-MD**\] \[**-MMD**\]\
     \[**--version**\] \[**--help**\] \[**-v**\] \[**--verbose**\]\
     *classname*...

## DESCRIPTION

The `"gcjh"` program is used to generate header files from class files.  It can generate both CNI and JNI header files, as well as stub implementation files which can be used as a basis for implementing the required native methods.

## OPTIONS

- **-stubs**

  This causes `"gcjh"` to generate stub files instead of header files. By default the stub file will be named after the class, with a suffix of **.cc**.  In JNI mode, the default output file will have the suffix **.c**.

- **-jni**

  This tells `"gcjh"` to generate a JNI header or stub.  By default, CNI headers are generated.

- **-add** *text*

  Inserts *text* into the class body.  This is ignored in JNI mode.

- **-append** *text*

  Inserts *text* into the header file after the class declaration. This is ignored in JNI mode.

- **-friend** *text*

  Inserts *text* into the class as a `"friend"` declaration. This is ignored in JNI mode.

- **-prepend** *text*

  Inserts *text* into the header file before the class declaration. This is ignored in JNI mode.

- **--classpath=***path*

  - **--CLASSPATH=***path*

  - **-I***directory*

  - **-d** *directory*

  - **-o** *file*

  These options are all identical to the corresponding `"gcj"` options.

- **-o** *file*

  Sets the output file name.  This cannot be used if there is more than one class on the command line.

- **-td** *directory*

  Sets the name of the directory to use for temporary files.

- **-M**

  Print all dependencies to stdout; suppress ordinary output.

- **-MM**

  Print non-system dependencies to stdout; suppress ordinary output.

- **-MD**

  Print all dependencies to stdout.

- **-MMD**

  Print non-system dependencies to stdout.

- **--help**

  Print help about `"gcjh"` and exit.  No further processing is done.

- **--version**

  Print version information for `"gcjh"` and exit.  No further processing is done.

- **-v, --verbose**

  Print extra information while running.

All remaining options are considered to be names of classes.

## SEE ALSO

[*gcc*(1)](/gcc/1.md), [*gcj*(1)](/gcj/1.md), [*gij*(1)](/gij/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''.
