`

javah

阅读更多
Generates C header and source files from a Java class.

Synopsis
javah [ options ] fully-qualified-class-name ...

options
The command-line options. See Options.

fully-qualified-class-name
The fully qualified location of the classes to be converted to C header and source files.

Description
The javah command 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 with a layout that parallels the layout of the corresponding class. The fields in the struct correspond 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. When the class passed to the javah command is inside a package, the package name is added to the beginning of both the header file name and the structure name. Underscores (_) are used as name delimiters.

By default the javah command 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 Java Native Interface (JNI) does not require header information or stub files. The javah command can still be used to generate native method function prototypes needed for JNI-style native methods. The javah command 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 an output file. Only one of -o or -d can be used.

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

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

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

-help
Prints a help message for javah usage.

-version
Prints javah command release information.

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

-classpath path
Specifies the path the javah command uses to look up classes. Overrides the default or the CLASSPATH environment variable when it is set. Directories are separated by colons on Oracle Solaris and semicolons on Windows. The general format for path is:

Oracle Solaris:

.:your-path

Example: .:/home/avh/classes:/usr/local/java/classes

Windows:

.;your-path

Example: .;C:\users\dac\classes;C:\tools\java\classes

As a special convenience, a class path element that contains a base name of * is considered equivalent to specifying a list of all the files in the directory with the extension .jar or .JAR.

For example, if directory mydir contains a.jar and b.JAR, then the class path element mydir/* is expanded to a A.jar:b.JAR, except that the order of jar files is unspecified. All JAR files in the specified directory, including hidden ones, are included in the list. A class path entry that consists of * expands to a list of all the JAR files in the current directory. The CLASSPATH environment variable, where defined, is similarly expanded. Any class path wild card expansion occurs before the Java Virtual Machine (JVM) is started. A Java program will never see unexpanded wild cards except by querying the environment. For example, by calling System.getenv("CLASSPATH").

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

-old
Specifies that old JDK 1.0-style header files should be generated.

-force
Specifies that output files should always be written.

-Joption
Passes option to the Java Virtual Machine, where option is one of the options described on the reference page for the Java application launcher. For example, -J-Xms48m sets the startup memory to 48 MB. See java(1).

 

分享到:
评论

相关推荐

    用javah导出类的头文件常见的错误及正确的使用方法.docx

    `javah`工具就是Java SDK提供的一种命令行工具,用于生成C或C++的头文件,使得我们可以为Java类编写本地方法。然而,在实际操作中,我们可能会遇到一些常见错误。下面我们将详细讨论这些错误及其解决方法。 1. **...

    javah h h h guu

    【标题】"javah h h h guu" 提到的 "javah" 是 Java 平台中的一个工具,主要用于生成 C/C++ 头文件,这些头文件包含了调用 Java 类中的 native 方法所需的函数原型。这通常是 Java 开发中进行本地方法接口(JNI,...

    JNI开发之javah生成静态和非静态的两个头文件区别代码

    在JNI开发中,我们常常需要通过`javah`工具来生成C或C++的头文件,这些头文件定义了Java层与本地层交互的函数原型。`javah`工具可以从已编译的Java类中提取方法签名,生成对应的C/C++函数原型。 在`javah`命令中,...

    javah编译jni

    在Android Studio 3.0及更高版本中,虽然Gradle插件已经内置了对JNI的支持,但使用javah工具编译JNI仍然是一种常见的方法,尤其是对于熟悉旧版流程的开发者。 首先,让我们理解一下javah工具。javah是Java SDK中的...

    Eclipse 配置 Javah NDK 编译

    Javah是Java SDK中的一个工具,用于生成C/C++的头文件,这些头文件包含了Java类的方法声明,使得在C/C++代码中可以调用Java方法。Eclipse作为一款流行的Java集成开发环境,提供了配置NDK编译的功能,便于进行混合...

    JavaH指数.doc

    JavaH指数,也称为H指数,是衡量科研人员学术影响力的一种指标。这个概念是由物理学家乔治·赫希在2005年提出的,用于评估科学家的科研成果质量和影响力。H指数考虑了研究者发表的论文数量和这些论文的被引用次数,...

    JDK命令学习 javac java javah jdb

    本文总结了 JDK 中的各种命令,包括 javac、java、javah、jdb 等,详细介绍了 JDB 调试工具的使用方法和命令列表。通过学习这些命令,可以更好地学习和使用 Java 语言。 一、JDK 命令简介 JDK 中提供了许多实用的...

    JavaH5微信支付

    JavaH5微信支付是将Java技术与微信支付接口结合,为用户提供在网页上进行支付的服务。这个技术主要用于电商网站、移动应用等场景,方便用户在H5环境下完成交易。接入H5微信支付需要理解以下几个核心知识点: 1. **...

    javaweb+javah后端代码+芝麻开门博客网站后端代码

    在本项目中,"javaweb+javah后端代码+芝麻开门博客网站后端代码" 提供了一套完整的Java Web后端解决方案,适合用于毕业设计或构建博客网站的后台系统。下面将详细阐述其中涉及的技术栈、核心知识点以及它们在实际...

    javah命令生成的头文件

    javah命令生成的后缀是.h的c语言的头文件,

    JNI生成文件

    2. **生成头文件**:使用JDK的`javah`工具,根据包含`native`方法的类生成对应的C/C++头文件。例如,对于上述的`HelloWorld`类,可以执行: ``` javah HelloWorld ``` 这将生成`HelloWorld.h`文件,里面包含了Java...

    JNI之Hello-JNI进阶

    4. 利用命令生成相应的头文件,在根目录下执行:javah -classpath bin/classes -d jni com.xxx.hello.HelloJni ————————————— ——————— ^ ^ 包名 类名 5. 编写相应的.c文件(hello-jni.c) #...

    javah5棋牌源码-pychess:用python编写的国际象棋程序

    虽然标题中提到了“javah5”,但没有明确说明Java在项目中的具体角色。通常情况下,Java Web开发可以用于构建服务器端的后端系统,处理用户请求,管理数据库,与前端进行交互。如果Java在这里用于实现H5棋牌的后端...

    ndk开发实战javap签名篇

    javah是用于生成Java本地接口(JNI)头文件的一个工具,它可以帮助开发者将Java类声明转换成C/C++的头文件,而javap是Java的反汇编工具,可以用来输出Java类的可读形式。描述强调,如果无法获取到签名,就无法根据...

    基于Java的即时通讯软件设计与开发.pdf

    论文中提出了JavaH i系统的设计和实现,JavaH i是一个基于Java虚拟机的跨平台即时通讯工具,具有跨平台、安全性、多线程和网络Socket编程的优点。 以下是该论文中的主要知识点: 1. 即时通讯的定义和分类:即时...

    android NDK 自动生成jni头文件

    Android NDK 提供了一個工具 javah,可以将 Java 代码中的 JNI 方法转换为 C/C++ 头文件,以便进行 JNI 的 C/C++ 端程序的开发。 javah 命令是 Android NDK 中的一个重要工具,主要用于将 Java 代码中的 JNI 方法...

    JAVA JNI C++调用示例

    - `javah` 工具是Java SDK的一部分,用于从已编译的Java类(如 `.class` 文件)生成C或C++的头文件。在这个例子中,`com_sundy_jnidemo_ChangeMethodFromJni.h` 和 `com_wwj_jni_TestJNI.h` 应该是由 `javah` 生成...

    HelloNDK学习

    "HelloNDK学习"项目是一个面向初学者的实践教程,旨在帮助开发者掌握NDK的基础使用以及相关技术,如javah、ant和多平台支持。 1. NDK基础: NDK提供了一组工具,让开发者能够在Android应用中嵌入本地代码。这样...

    Android使用jni调用c++/c方法详解

    在Android Studio的Terminal中,编译项目以生成`.class`文件,然后导航到`app/build/intermediates/classes/debug`目录,执行`javah -jni 包名.JniTest`命令。这会生成一个与Java类相对应的头文件,例如`...

Global site tag (gtag.js) - Google Analytics