您的位置 首页 java

Javah命令详解

jdk 1.8

Java h 生成实现本地方法所需的 C 头文件和源文件。C 程序用生成的头文件和源文件在本地源代码中引用某一对象的实例变量。.h 文件含有一个 struct 定义,该定义的布局与相应类的布局平行。该 struct 中的域对应于类中的实例变量。

javah命令参数详解

Javah命令详解

-o 输出文件

将命令行中列出的所有类的头文件或源文件串接到输出文件中。-o 或 -d 两个选项只能选择一个。

-d 目录

设置 javah 保存头文件或 stub 文件的目录。-d 或 -o 两个选项只能选择一个。

-verbose

指明长格式输出,并使 javah 将所生成文件的有关状态的信息输出到标准输出设备中。

-help

输出 javah 用法的帮助信息。

-version

输出 javah 的版本信息。

JNI

使 javah 创建一输出文件,该文件包含 jni 风格的本地方法函数原型。这是缺省输出,所以 -jni 的使用是可选的。

CLASSPATH 路径

指定 javah 用来查询类的路径。如果设置了该选项,它将覆盖缺省值或 CLASSPATH 环境变量。目录用 分号 分隔(如果失败,可用 冒号 试试,尤其是最新 Linux java版本)。因此,路径的一般格式是:

.;<您的路径>

例如:

.;C:usersdacclasses;C:toolsjavaclasses

-bootclasspath 路径

指定加载 自举 类所用的路径。缺省情况下,自举类是实现核心 Java 平台的类,位于 jre librt.jar 和 jrelibi18n.jar 中。

-old

指定应当生成旧 JDK1.0 风格的头文件。

-force

指定始终写输出文件。

使用 java h 命令生成 C语言 函数名

 用法: java [-options] class [args...]
           (执行类)
   或  java [-options] -jar jarfile [args...]
           (执行  jar  文件)  

新建一个含有native方法的java类:JavaHDemo.java

 package com.being;

public class JavaHDemo {

     static  {
        System.loadLibrary("JavaHDemo");
    }

    public static  void  main(String[] args) {
        sayHello("being");
    }

    public static native void sayHello(String name);
}
  

执行 javac JavaHDemo.java命令 在本目录会生成JavaHDemo. class文件

Javah命令详解

src所在目录执行如下命令:

执行javah -jni com.being.JavaHDemo会生成jni头文件:

打开文件com_being_JavaHDemo.h

 /* DO NOT EDIT THIS FILE - it is machine generated */# include  <jni.h>
/*  Header  for class com_being_JavaHDemo */
#ifndef _Included_com_being_JavaHDemo
# define  _Included_com_being_JavaHDemo
#ifdef __cplusplus
 extern  "C" {
#endif
/*
 * Class:     com_being_JavaHDemo
 * Method:    sayHello
 * Signature: (Ljava/lang/String;)V
 */JNIEXPORT void JNICALL Java_com_being_JavaHDemo_sayHello
  (JNIEnv *, jclass, jstring);

#ifdef __cplusplus
}
#endif
#endif
  

文章来源:智云一二三科技

文章标题:Javah命令详解

文章地址:https://www.zhihuclub.com/188187.shtml

关于作者: 智云科技

热门文章

网站地图