开发者社区> 问答> 正文

Java怎么调用c/c++写的库

接口供应商给我们发来aa.h , aa.dll 文件 还有一个api文档。向各位大神求救,搞了一天都不懂,真心痛苦

展开
收起
a123456678 2016-03-09 09:57:45 2599 0
1 条回答
写回答
取消 提交回答
  • 你是用eclipse吧,给你个完整的,
    eclipse 配置jni工具:->ExternTool->javah.exe路径 C:Program Files (x86)Javajdk1.8.0_40binjavah.exe
    ->当前目录: ${project_loc} ->参数:-v -classpath "${project_loc}/bin" -d "${project_loc}/jni" -jni ${java_type_name}

    例子:
    /*java调用C++动态库,例子/

    public class HelloWorld {
    
    public static void main(String []args)
    {
        LoadDll.displayHelloWorld(); //调用
    
    }
    }
    /*生成JNI文件的类,名字随意*/
    public class LoadDll {
    public native static void displayHelloWorld();//库函数
    static{
    System.loadLibrary("LoadDll"); //库名字
    }
    }

    VC: jni.h和C:Program Files (x86)Javajdk1.8.0_40includewin32的jawt_md.h、jni_md.h移动到VC程序的 C:Program Files (x86)Microsoft Visual Studio 9.0VCinclude

    DLL的位数要和JDK位数一致
    编译生成DLL,移到java的bin目录

    2019-07-17 18:55:26
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载