简单介绍及应用如下:
一、JAVA中所需要做的工作
在JAVA程序中,首先需要在类中声明所调用的库名称,如下:
static {
System.loadLibrary(“goodluck”)
}
在这里,库的扩展名字可以不用写出来,究竟是DLL还是SO,由系统自己判断。
还需要对将要调用的方法做本地声明,关键字为native。并且只需要声明,而不需要具 体实现。如下:
public native static void set(int i)
public native static int get()
然后编译该JAVA程序文件,生成CLASS,再用JAVAH命令,JNI就会生成C/C++的头文件。
例如程序testdll.java,内容为:
public class testdll
{
static
{
System.loadLibrary("goodluck")
}
public native static int get()
public native static void set(int i)
public static void main(String[] args)
{
testdll test = new testdll()
test.set(10)
System.out.println(test.get())
}
}
用javac testdll.java编译它,会生成testdll.class。
再用javah testdll,则会在当前目录下生成testdll.h文件,这个文件需要被C/C++程序调用来生成所需的库文件。
是你的老师说错了,Java可以调用.net的webservice。你应该买本webservice的书籍看看,学习一下基础的理论。什么是webservice?为什么会出现webservice?你都清楚么?Web
Service
是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web
Service能与其他兼容的组件进行互操作。它可以使用标准的互联网协议,像超文本传输协议HTTP和XML,将功能体现在互联网和企业内部网上。Web
Service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用你喜欢的任何语言(笔者用的是java),在你喜欢的任何平台上写Web
Service。
你没有成功用java的Web
Service调用.net做出来的东西,那就是你的程序出了问题。