Class Javah

  • All Implemented Interfaces:
    java.lang.Cloneable

    public class Javah
    extends Task
    Generates JNI header files using javah. This task can take the following arguments:
    • classname - the fully-qualified name of a class
    • outputFile - Concatenates the resulting header or source files for all the classes listed into this file
    • destdir - Sets the directory where javah saves the header files or the stub files
    • classpath
    • bootclasspath
    • force - Specifies that output files should always be written (JDK1.2 only)
    • old - Specifies that old JDK1.0-style header files should be generated (otherwise output file contain JNI-style native method function prototypes) (JDK1.2 only)
    • stubs - generate C declarations from the Java object file (used with old)
    • verbose - causes javah to print a message to stdout concerning the status of the generated files
    • extdirs - Override location of installed extensions
    Of these arguments, either outputFile or destdir is required, but not both. More than one classname may be specified, using a comma-separated list or by using <class name="xxx"> elements within the task.

    When this task executes, it will generate C header and source files that are needed to implement native methods.

    • Constructor Detail

      • Javah

        public Javah()
        No arg constructor.
    • Method Detail

      • setClass

        public void setClass​(java.lang.String cls)
        the fully-qualified name of the class (or classes, separated by commas).
        Parameters:
        cls - the classname (or classnames).
      • createClass

        public Javah.ClassArgument createClass()
        Adds class to process.
        Returns:
        a ClassArgument to be configured.
      • addFileSet

        public void addFileSet​(FileSet fs)
        Add a fileset.
        Parameters:
        fs - the fileset to add.
      • getClasses

        public java.lang.String[] getClasses()
        Names of the classes to process.
        Returns:
        the array of classes.
        Since:
        Ant 1.6.3
      • setDestdir

        public void setDestdir​(java.io.File destDir)
        Set the destination directory into which the Java source files should be compiled.
        Parameters:
        destDir - the destination directory.
      • getDestdir

        public java.io.File getDestdir()
        The destination directory, if any.
        Returns:
        the destination directory.
        Since:
        Ant 1.6.3
      • setClasspath

        public void setClasspath​(Path src)
        the classpath to use.
        Parameters:
        src - the classpath.
      • createClasspath

        public Path createClasspath()
        Path to use for classpath.
        Returns:
        a path to be configured.
      • setClasspathRef

        public void setClasspathRef​(Reference r)
        Adds a reference to a classpath defined elsewhere.
        Parameters:
        r - a reference to a classpath.
        To do:
        this needs to be documented in the HTML docs.
      • getClasspath

        public Path getClasspath()
        The classpath to use.
        Returns:
        the classpath.
        Since:
        Ant 1.6.3
      • setBootclasspath

        public void setBootclasspath​(Path src)
        location of bootstrap class files.
        Parameters:
        src - the bootstrap classpath.
      • createBootclasspath

        public Path createBootclasspath()
        Adds path to bootstrap class files.
        Returns:
        a path to be configured.
      • setBootClasspathRef

        public void setBootClasspathRef​(Reference r)
        To the bootstrap path, this adds a reference to a classpath defined elsewhere.
        Parameters:
        r - a reference to a classpath
        To do:
        this needs to be documented in the HTML.
      • getBootclasspath

        public Path getBootclasspath()
        The bootclasspath to use.
        Returns:
        the bootclass path.
        Since:
        Ant 1.6.3
      • setOutputFile

        public void setOutputFile​(java.io.File outputFile)
        Concatenates the resulting header or source files for all the classes listed into this file.
        Parameters:
        outputFile - the output file.
      • getOutputfile

        public java.io.File getOutputfile()
        The destination file, if any.
        Returns:
        the destination file.
        Since:
        Ant 1.6.3
      • setForce

        public void setForce​(boolean force)
        If true, output files should always be written (JDK1.2 only).
        Parameters:
        force - the value to use.
      • getForce

        public boolean getForce()
        Whether output files should always be written.
        Returns:
        the force attribute.
        Since:
        Ant 1.6.3
      • setOld

        public void setOld​(boolean old)
        If true, specifies that old JDK1.0-style header files should be generated. (otherwise output file contain JNI-style native method function prototypes) (JDK1.2 only).
        Parameters:
        old - if true use old 1.0 style header files.
      • getOld

        public boolean getOld()
        Whether old JDK1.0-style header files should be generated.
        Returns:
        the old attribute.
        Since:
        Ant 1.6.3
      • setStubs

        public void setStubs​(boolean stubs)
        If true, generate C declarations from the Java object file (used with old).
        Parameters:
        stubs - if true, generated C declarations.
      • getStubs

        public boolean getStubs()
        Whether C declarations from the Java object file should be generated.
        Returns:
        the stubs attribute.
        Since:
        Ant 1.6.3
      • setVerbose

        public void setVerbose​(boolean verbose)
        If true, causes Javah to print a message concerning the status of the generated files.
        Parameters:
        verbose - if true, do verbose printing.
      • getVerbose

        public boolean getVerbose()
        Whether verbose output should get generated.
        Returns:
        the verbose attribute.
        Since:
        Ant 1.6.3
      • setImplementation

        public void setImplementation​(java.lang.String impl)
        Choose the implementation for this particular task.
        Parameters:
        impl - the name of the implementation.
        Since:
        Ant 1.6.3
      • createArg

        public ImplementationSpecificArgument createArg()
        Adds an implementation specific command-line argument.
        Returns:
        a ImplementationSpecificArgument to be configured.
        Since:
        Ant 1.6.3
      • getCurrentArgs

        public java.lang.String[] getCurrentArgs()
        Returns the (implementation specific) settings given as nested arg elements.
        Returns:
        the arguments.
        Since:
        Ant 1.6.3
      • createImplementationClasspath

        public Path createImplementationClasspath()
        The classpath to use when loading the javah implementation if it is not a built-in one.
        Returns:
        Path
        Since:
        Ant 1.8.0
      • add

        public void add​(JavahAdapter adapter)
        Set the adapter explicitly.
        Parameters:
        adapter - JavahAdapter
        Since:
        Ant 1.8.0
      • logAndAddFiles

        public void logAndAddFiles​(Commandline cmd)
        Logs the compilation parameters, adds the files to compile and logs the "niceSourceList"
        Parameters:
        cmd - the command line.
      • logAndAddFilesToCompile

        protected void logAndAddFilesToCompile​(Commandline cmd)
        Logs the compilation parameters, adds the files to compile and logs the "niceSourceList"
        Parameters:
        cmd - the command line to add parameters to.