首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

《JAVA深度历险》札记(四)C++调用JAVA程序

2012-11-08 
《JAVA深度历险》笔记(四)C++调用JAVA程序?如上图所示,整个程序的首要之先,就是先从用 C/C++所写的程序代码

《JAVA深度历险》笔记(四)C++调用JAVA程序

?

《JAVA深度历险》札记(四)C++调用JAVA程序



如上图所示,整个程序的首要之先,就是先从用 C/C++所写的程序代码之中,唤起Java 虚拟机。由于Java 虚拟机在Windows 平台上是个动态联结库(.dll),所以唤起程序的第一件事情,就是把 jvm.dll 这个动态链接库加载内存,并和我们的程序执行时所属的进程(process)连接起来(attach),如此一来我们才可以利用 jvm.dll 的API来操控Java 虚拟机。

这个复杂的程序有两种方法可以做到,第一种为explicit式,也就是在程序执行时期使用Win32 API里头的LoadLibrary()与 GetProcAddress()来做,第二种为implicit 式,也就是在编译时期就依靠头文件(.h)与符号表档(.lib)来解决外部参考的问题。第一种比较有弹性,但是比较不易除错。

当动态链接库接驳上我们的行程之后,我们就可以利用JNI_CreateJavaVM()以在内存中建立一个 Java 虚拟机的实体,然后我们就可以操控它来加载我们希望使用的类库。当我们不需要这个 Java 虚拟机的时候,我们也要利用 JNI_DestroyJavaVM()来清除它。整个唤起Java虚拟机的程序如下图所示:

《JAVA深度历险》札记(四)C++调用JAVA程序

?

?

热点排行