重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Java可以通过JNI来调用执行本地方法,例如C
马鞍山网站建设公司创新互联,马鞍山网站设计制作,有大型网站制作公司丰富经验。已为马鞍山上千多家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的马鞍山做网站的公司定做!
你可以参考这个
1、编写java程序jcall.java,如下:
public class jcall
{
static
{
System.loadLibrary("jcallc.dll");
}
public native static int test(int i);
public static void main(String[] args)
{
jcall jc = new jcall();
int i;
i = jc.test(4);
System.out.println(i);
}
}
2、编译java
javac jcall.java
4、生成头文件
javah jcall
生成jcall.h文件
5、制作VC动态库
建立DLL工程,程序添加:
#include "jcall.h"
JNIEXPORT jint JNICALL Java_jcall_test (JNIEnv *, jclass, jint p)
{
int j = p*2;
return j;
}
将jcall.h jni.h复制到VC工程目录,然后编译。
6、java调用
将jcallc.dll文件复制到jcall.java的目录中,运行
java jcall,就可以得到运行结果。
那必须有用啊,不懂C得java程序员不是真正的程序员,C是java的底层实现,学了C能更好地理解java。java的函数都是用C语言写好封装的,如果你只是想当一个java代码程序员(就光敲代码的那种),那你可以不用学了,但是如果想再java方面不断的深入,不断的提升,C语言是比必学的,不然,你根本就不知道java实现的机制和java函数的实现。
首选,直接内嵌是没法编译通过的。一般通过jni方式调用c或者c++,或者c最后生成可移植性文件,通过java的api直接调用命令行。