1、通过JNI生成C调用的头文件:Java源码:

import java.io.File;

public class Test {

    static {
System.load("D:" + File.separator + "Hello.dll");
} public native static void Hello(); public static void main(String[] args) {
Hello();
//System.out.print("aaa");
}
}

2、生成头文件:cmd 进入java文件所在的位置,执行javah:

  

  

3、创建项目:

  

  

  

  

4、文件结构

  

5、复制头文件,到程序目录下:

  1)通过JNI生成的头文件 Test.h

  2)jdk1.7.0_80\include\jni.h

  3)jdk1.7.0_80\include\win32\jni_md.h

  

6、添加头文件到项目:

  

  

7、修改Test.h头文件,改为引号:

  

8、新建cpp文件:

  

  添加代码:

  

#include <iostream>

#include "Test.h"

using namespace std;

JNIEXPORT void JNICALL Java_Test_Hello(JNIEnv *, jclass)
{
cout << "Hello World!" << endl;
}

  

9、编译生成32位dll

  

10、编译生成64位dll

  设置64位

  

  

  

  

  

  

11、把生成的DLL放在D盘,执行第一步写的Java代码,结果如下:

  

  

Java Native调用C方法的更多相关文章

  1. java获取调用当前方法的方法名和行数

    java获取调用当前方法的方法名和行数String className = Thread.currentThread().getStackTrace()[2].getClassName();//调用的 ...

  2. [转]如何在Java中调用DLL方法

    转载地址:http://developer.51cto.com/art/200906/129773.htm Java语言本身具有跨平台性,如果通过Java调用DLL的技术方便易用,使用Java开发前台 ...

  3. java反射调用私有方法和修改私有属性

    //调用私有方法package com.java.test; public class PrivateMethod { private String sayHello(String name) { r ...

  4. 在java中调用python方法

    1.http://sourceforge.net/projects/jython/下载jython包,把其中的jython.jar添加到工程目录 示例: 1.摘自:http://blog.csdn.n ...

  5. Java 反射调用动态方法

    package com.pigetest.util; import java.lang.reflect.Method; public class PrivateMethodTestHelper { p ...

  6. java获取调用此方法的上面的方法名、类

    StackTraceElement[] stacks = (new Throwable()).getStackTrace(); for (StackTraceElement stack : stack ...

  7. cocos2d 中使用jni Java 调用 C++ 方法

    1.首先是LoadLibrary cocos2d中的C++代码会编译成一个.so文件.放在安卓文件夹下的libs/armeabi 下,然后java会load进来,这步我们不用做了,由于cocos2d已 ...

  8. cordova混合开发:Android中native调用javascript

    今天学习怎么在java中调用javascript方法,做个记录: 第一种方式,这个最简单: loadUrl("javascript:func1()"); 要注意要在devicere ...

  9. Android中WebView与H5的交互,Native与JS方法互调

    项目中经常用到WebView与H5的交互,一个是H5调本地方法,一个是本地调H5方法,在此记录一下. 首先,启用JS支持 //启用js支持 webSettings.setJavaScriptEnabl ...

随机推荐

  1. Spring mvc session cookie实现自动登录

    设计过程 1. user表存储用户名密码等信息,login表存放用户登陆状态的表 user表中存储username,pwd,等信息 login表存username,series(UUID),token ...

  2. D类IP地址和组播传输

    在224.0.0.0-239.255.255.255范围内的地址称为D类IP组播地址.其中,224.0.0.0-224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不做分配 ...

  3. Java入门练习之四则运算

    Java入门练习之四则运算 项目目的 制作一个Java控制台程序,让他可以随机生成四则运算,并针对用户的输入判断对错. 项目分析 该项目本质上是一个四则运算出题器,可以创建一个Question类,其中 ...

  4. 加密算法HASH和MD5模块hsahlib

    HASH Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出, ...

  5. lua 匹配空白符

    lua 支持的所有字符类: .     任意字符%s 空白符 空白字符一般包括空格.换行符\n.制表符\t以及回到行首符\r%p 标点字符%c 控制字符%d 数字%x 十六进制数字%z 代表0的字符% ...

  6. java8_api_net

    网络编程1    操作ip地址        核心类 InetAddress        相关方法 getByName,getAllByName,getLocalHost    操作socket地址 ...

  7. java练习-判断字符串是否都是数字

    方法1: package everyDayPratise; public class IsAllNumber { public static boolean method1(String s) { i ...

  8. isp

    Lens Shading可细分为Luma Shading(亮度均匀性)和Color Shading(色彩均匀性)两种.其中,Luma Shading就是我们常说的暗角.既图像呈现出中心区域较亮,四周偏 ...

  9. Restful OData Protocol

    Web服务有两种实现方式: 一是SOAP协议方式 二是REST方式. SOAP是一套完整的实现Web服务的解决方案.这里有必要先简单了解SOAP方式的Web服务,然后对比SOAP方式,我们会发现RES ...

  10. Ubuntu 15.10 下Tachyon安装

    1 系统环境 Ubuntu 15.10, Java 1.7, Hadoop 2.6.0 HA, Spark-1.4.0 三台机器 spark-1423-0001: Master, Worker spa ...