WEB开发网
开发学院软件开发Java 集成 Windows 本地应用到 Eclipse RCP 程序中 阅读

集成 Windows 本地应用到 Eclipse RCP 程序中

 2009-12-18 00:00:00 来源:WEB开发网   
核心提示: 先编译这个 java 类: javac HelloWorld.java,然后再生成扩展名为 .h 的头文件,集成 Windows 本地应用到 Eclipse RCP 程序中(2),java 提供了命令 javah 来生成头文件:javah –jni HelloWorld,下面的清单显

先编译这个 java 类: javac HelloWorld.java,然后再生成扩展名为 .h 的头文件,java 提供了命令 javah 来生成头文件:javah –jni HelloWorld,下面的清单显示了生成的头文件的内容:


清单 2. Hello World C++ 头文件

/* DO NOT EDIT THIS FILE - it is machine generated */ 
#include <jni.h> 
/* Header for class HelloWorld */ 
 
#ifndef _Included_HelloWorld 
#define _Included_HelloWorld 
#ifdef __cplusplus 
extern "C" { 
#endif 
/* 
 * Class:   HelloWorld 
 * Method:  print 
 * Signature: ()V 
 */ 
JNIEXPORT void JNICALL Java_HelloWorld_print (JNIEnv *, jobject); 
 
#ifdef __cplusplus 
} 
#endif 
#endif 

使用 c/c++ 实现本地方法并编译成动态库文件

前面已经生成了 c/c++ 的头文件,下面要实现头文件中声明的函数,具体的实现代码如下面的清单所示,示例代码中仅仅是输出一行文字“HelloWorld”:


清单 3. Hello World C++ 实现代码

#include "HelloWorld.h" 
#include <stdio.h> 
 
JNIEXPORT void JNICALL Java_HelloWorld_print(JNIEnv * env, jobject obj) 
{ 
 printf("Hello World"); 
} 

接下来要做的就是将这个 c++ 的代码编译成动态库文件,在 HelloWorld.cpp 文件目录下面,使用 VC 的编译器 cl 命令来编译:

cl -I%java_home%\include -I%java_home%\include\win32 -LD HelloWorld.cpp –Fehelloworld.dll

上一页  1 2 3 4 5 6 7  下一页

Tags:集成 Windows 本地

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接