Fork me on GitHub

native:javah

Full name:

org.codehaus.mojo:native-maven-plugin:1.0-alpha-9:javah

Description:

Generate JNI include files based on a set of class names

Attributes:

  • Requires a Maven project to be executed.
  • Requires dependency resolution of artifacts in scope: compile.
  • Binds by default to the lifecycle phase: generate-sources.

Required Parameters

Name Type Since Description
incZipFile File 1.0-alpha-8 Archive file to bundle all generated include files if enable by ${attach}
Default value is: ${project.build.directory}/${project.build.finalName}.inczip.
javahOutputDirectory File 1.0-alpha-2 Where to place javah generated file
Default value is: ${project.build.directory}/native/javah.
javahProvider String 1.0-alpha-2 Javah Provider.
Default value is: default.
workingDirectory File - user directory when external tools( ie compiler/linker ) are invoked
Default value is: ${basedir}.

Optional Parameters

Name Type Since Description
attach boolean - Archive all generated include files and deploy as an inczip
Default value is: false.
classifier String - Classifier name when install/deploy generated includes file. See ${attach} for details
Default value is: javah.
dependencyIncludeDirectory File - Directory to unpack .inczip dependency files to be included as system include path
Default value is: ${project.build.directory}/native/include.
envFactoryName String - Specifies a fully qualified class name implementing the org.codehaus.mojo.natives.EnvFactory interface. The class creates a set environment variables to be used with the command line.
javahClassNames List 1.0-alpha-4 List of class names to generate native files. Additional JNI interface will automatically discovered from project's dependencies of jar type, when javahSearchJNIFromDependencies is true
javahIncludes List 1.0-alpha-8 Additional javah classname and its corresponding header name. Use this option to create one class per header
<javahIncludes>
  <javahInclude>
    <className>com.some.Class</className>
    <headerName>Class.h</headerName>
  <javahInclude>
</javahIncludes>

javahOutputFileName String 1.0-alpha-4 if configured, this value will be combined with outputDirectory to pass into javah's -o option
javahPath File 1.0-alpha-2 Path to javah executable, if present, it will override the default one which bases on architecture type. See 'javahProvider' argument
javahSearchJNIFromDependencies boolean 1.0-alpha-4 Enable the search from project dependencies for JNI interfaces, in addition to javahClassNames
Default value is: false.
javahVerbose boolean 1.0-alpha-2 Enable javah verbose mode
Default value is: false.
useEnvClasspath boolean 1.0-alpha-9 Set CLASSPATH env variable instead of using -classpath command-line argument. Use this option to allow large number of jars in classpath due to command line size limit under Windows
Default value is: false.

Parameter Details

attach:

Archive all generated include files and deploy as an inczip
  • Type: boolean
  • Required: No
  • Default: false

classifier:

Classifier name when install/deploy generated includes file. See ${attach} for details
  • Type: java.lang.String
  • Required: No
  • Default: javah

dependencyIncludeDirectory:

Directory to unpack .inczip dependency files to be included as system include path
  • Type: java.io.File
  • Required: No
  • Default: ${project.build.directory}/native/include

envFactoryName:

Specifies a fully qualified class name implementing the org.codehaus.mojo.natives.EnvFactory interface. The class creates a set environment variables to be used with the command line.
  • Type: java.lang.String
  • Required: No

incZipFile:

Archive file to bundle all generated include files if enable by ${attach}
  • Type: java.io.File
  • Since: 1.0-alpha-8
  • Required: Yes
  • Default: ${project.build.directory}/${project.build.finalName}.inczip

javahClassNames:

List of class names to generate native files. Additional JNI interface will automatically discovered from project's dependencies of jar type, when javahSearchJNIFromDependencies is true
  • Type: java.util.List
  • Since: 1.0-alpha-4
  • Required: No

javahIncludes:

Additional javah classname and its corresponding header name. Use this option to create one class per header
<javahIncludes>
  <javahInclude>
    <className>com.some.Class</className>
    <headerName>Class.h</headerName>
  <javahInclude>
</javahIncludes>
  • Type: java.util.List
  • Since: 1.0-alpha-8
  • Required: No

javahOutputDirectory:

Where to place javah generated file
  • Type: java.io.File
  • Since: 1.0-alpha-2
  • Required: Yes
  • Default: ${project.build.directory}/native/javah

javahOutputFileName:

if configured, this value will be combined with outputDirectory to pass into javah's -o option
  • Type: java.lang.String
  • Since: 1.0-alpha-4
  • Required: No

javahPath:

Path to javah executable, if present, it will override the default one which bases on architecture type. See 'javahProvider' argument
  • Type: java.io.File
  • Since: 1.0-alpha-2
  • Required: No

javahProvider:

Javah Provider.
  • Type: java.lang.String
  • Since: 1.0-alpha-2
  • Required: Yes
  • Default: default

javahSearchJNIFromDependencies:

Enable the search from project dependencies for JNI interfaces, in addition to javahClassNames
  • Type: boolean
  • Since: 1.0-alpha-4
  • Required: No
  • Default: false

javahVerbose:

Enable javah verbose mode
  • Type: boolean
  • Since: 1.0-alpha-2
  • Required: No
  • Default: false

useEnvClasspath:

Set CLASSPATH env variable instead of using -classpath command-line argument. Use this option to allow large number of jars in classpath due to command line size limit under Windows
  • Type: boolean
  • Since: 1.0-alpha-9
  • Required: No
  • Default: false

workingDirectory:

user directory when external tools( ie compiler/linker ) are invoked
  • Type: java.io.File
  • Required: Yes
  • Default: ${basedir}