当前位置: 代码迷 >> Java Web开发 >> 求用JNDI实现用Java调用c++的例子
  详细解决方案

求用JNDI实现用Java调用c++的例子

热度:486   发布时间:2007-03-27 14:21:54.0
求用JNDI实现用Java调用c++的例子
我有个项目需求,用Java调用C++方法,要让我用JNDI实现,请问哪位大哥们有例子,给我发一个,谢谢!!!急!!!
搜索更多相关主题的帖子: Java  JNDI  例子  需求  

----------------解决方案--------------------------------------------------------
不会。。。不过网上有大把的例子。。

http://blog.csdn.net/joy_cz/archive/2006/12/29/1466466.aspx
----------------解决方案--------------------------------------------------------
以下是引用huangnetian在2007-3-27 14:21:54的发言:
我有个项目需求,用Java调用C++方法,要让我用JNDI实现,请问哪位大哥们有例子,给我发一个,谢谢!!!急!!!

你是想说用JNI吧?JNDI跟JNI可不是一个东西啊
----------------解决方案--------------------------------------------------------

JNI(JAVA NATIVE INTERFACE,JAVA本地接口)
是JAVA在特殊情况下,(如强调效率或与平台
有关的功能)必须调用本地方法时的接口规则。
下面是一个无限简单的样例:
程序功能:用JAVA调用本地用VC写的一个函数,
该函数输入一个整数,输出整数的平方加3。
1、首先,建立自己的JAVA主程序jnitest.java
jnitest.java :

import java.lang.*;
public class jnitest {
public static void main(String args[]) {
jnitest Mytest = new jnitest();
int a = 4;
int b = Mytest.Cal(a);
System.out.println("The result is : "+b);
}

public native int Cal(int i) ;

static {
System.loadLibrary("MyCal");
// MyCal 是本地方法的动态链接库的名称
}
}

2、然后javac jnitest.java ,生成.CLASS文件。
3、然后javah -jni jnitest , 生成jnitest.h。
编辑jnitest.h ,找到JAVA定义的本地方法的原型:

JNIEXPORT jint JNICALL Java_jnitest_Cal
(JNIEnv *, jobject, jint)

4、根据函数原形,编写C函数如下:
#include "jni.h"
#include "jnitest.h"

JNIEXPORT jint JNICALL Java_jnitest_Cal
(JNIEnv *env, jobject obj, jint a)
{
return ( a * a + 3) ;
}

注意必须INCLUDE 生成的jnitest.h和JAVA自带的jni.h
用VC编译之,生成MyCal.dll。
5、将MyCal.dll拷贝到jnitest所在目录,运行 :
java jnitest

结果为:The result is :19
OK !!!


----------------解决方案--------------------------------------------------------
可以写webservice嘛,大家可以互调,多爽。
----------------解决方案--------------------------------------------------------
  相关解决方案