Java 调用C

参考资料
http://www.iteye.com/topic/356188
http://www.iteye.com/topic/459005
http://www.iteye.com/topic/304594
http://www.iteye.com/topic/295776


Step1: 建立Java代码 注意这里是不带包名, 带包名的话, 使用javah会有些不同

public class Demo {
static
{
System.loadLibrary("demo");
}
public native static int add(int a,int b);

public static void main(String[] args) {
System.out.println(add(7,2));
}

}


Step2:用命令行的方式编译并生成头文件 Demo.h
javac Demo.java
javah Demo

Step3: 在VS2008中新建Demo的DLL项目, 将Demo.h拷贝到Header Files下, 注意: 需要同时拷贝到项目和文件目录下。

Step4: 准备VS2008环境, 将JDK下include的h文件放到
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include
不然会编译报错。

Step5: 编辑cpp文件

int add(int a,int b){
return a+b;
}

JNIEXPORT jint JNICALL Java_Demo_add
(JNIEnv *env,jclass jobject,jint a,jint b){

return add(a,b);
}

这里的 Java_Demo_add 和 Demo.h中的一致

Step6: 生成dll文件,拷贝到java目录下, 运行java Demo. 只能用命令行的方式运行, 不能用eclipse来玩。
大功告成

[color=red]但是这里传递的只是int, 能否传递集合,或是自定义的Bean呢?[/color]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值