Yolinux.com

javah manpage

Search topic Section


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)

				  16 Mar 2012			      javah(1)