javah(1)                    General Commands Manual                   javah(1)



Name
       javah - C Header and Stub File Generator

       javah  produces  C  header  files and C source files from a Java class.
       These files provide the connective glue that allow your Java and C code
       to interact.

SYNOPSIS
       javah [ options ] fully-qualified-classname. . .


DESCRIPTION
       javah  generates C header and source files that are needed to implement
       native methods. The generated header and source files  are  used  by  C
       programs to reference an object's instance variables from native source
       code. The .h file contains a struct definition whose  layout  parallels
       the  layout of the corresponding class. The fields in the struct corre-
       spond to instance variables in the class.

       The name of the header file and the structure declared  within  it  are
       derived  from  the  name  of the class. If the class passed to javah is
       inside a package, the package name is prepended to both the header file
       name  and  the  structure name. Underscores (_) are used as name delim-
       iters.

       By default javah creates a header file for each  class  listed  on  the
       command  line  and  puts  the  files  in the current directory. Use the
       -stubs option to create source files. Use the -o option to  concatenate
       the results for all listed classes into a single file.

       The  new native method interface, Java Native Interface (JNI), does not
       require header information or stub files. javah can still  be  used  to
       generate native method function proptotypes needed for JNI-style native
       methods. javah produces JNI-style output by  default,  and  places  the
       result in the .h file.

OPTIONS
          -o outputfile
             Concatenates  the  resulting  header  or source files for all the
             classes listed on the command line into outputfile. Only  one  of
             -o or -d may be used.

          -d directory
             Sets the directory where javah saves the header files or the stub
             files. Only one of -d or -o may be used.

          -stubs
             Causes javah to generate C  declarations  from  the  Java  object
             file.

          -verbose
             Indicates  verbose  output and causes javah to print a message to
             stdout concerning the status of the generated files.

          -help
             Print help message for javah usage.

          -version
             Print out javah version information.

          -jni
             Causes javah to create an output file containing JNI-style native
             method function prototypes. This is the default output, so use of
             -jni is optional.

          -classpath path
             Specifies the path javah uses to look up classes.  Overrides  the
             default  or  the  CLASSPATH  environment  variable  if it is set.
             Directories are separated by colons. Thus the general format  for
             path is:
                .:<your_path>
             For example:
                .:/home/avh/classes:/usr/local/java/classes
             As a special convenience, a class path element containing a base-
             name of * is considered equivalent to specifying a  list  of  all
             the  files  in  the  directory with the extension .jar or .JAR (a
             java program cannot tell the difference between the  two  invoca-
             tions).
             For  example, if directory foo contains a.jar and b.JAR, then the
             class path element foo/* is expanded  to  a  A.jar:b.JAR,  except
             that  the order of jar files is unspecified. All jar files in the
             specified directory, even hidden ones, are included in the  list.
             A classpath entry consisting simply of * expands to a list of all
             the jar files in the current directory. The CLASSPATH environment
             variable,  where  defined, will be similarly expanded. Any class-
             path wildcard expansion occurs before the Java virtual machine is
             started  --  no  Java  program will ever see unexpanded wildcards
             except by querying the environment. For example; by invoking Sys-
             tem.getenv("CLASSPATH").

          -bootclasspath path
             Specifies  path from which to load bootstrap classes. By default,
             the bootstrap classes are the classes implementing the core  Java
             2 platform located in jre/lib/rt.jar and several other jar files.

          -old
             Specifies that old JDK1.0-style header files should be generated.

          -force
             Specifies that output files should always be written.

          -Joption
             Pass  option  to the Java virtual machine, where option is one of
             the options described on the reference page for the java(1).  For
             example, -J-Xms48m sets the startup memory to 48 megabytes.


ENVIRONMENT VARIABLES
          CLASSPATH
             Used to provide the system a path to user-defined classes. Direc-
             tories are separated by colons, for example,


SEE ALSO
       javac(1), java(1), jdb(1), javap(1), javadoc(1)

                                  18 Jul 2013                         javah(1)
