java调用*.dll的问题 JustTest.dll放在哪里了?(放在PATH下任何一个路径都可以)另外没看到你的程序哪里使用ShowMsg.dll啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 出现这种错误是因为你的动态库做得有问题,制作JNI DLL的步骤如下:1。编写带有native方法的类,并将此类编译成class文件;2。用javah工具生成.h头文件; 在你做的这个例子中,因该是在justtest目录的上一级目录下,执行:javah -classpath . justtest.ShowMsg之后会在该目录下生成一个文件justtest_ShowMsg.h3。用一个.c(或.cpp)文件实现.h文件的函数;5。创建VC创建win32dll工程,将.c(或.cpp)和.h文件文件加入该工程,编译生成dll文件,6。将dll文件拷贝到,justtest目录的上一级目录下,执行:java -cp . justtest.RunC7.ok。我用你的例子做过了,没有问题,下面面是源程序://justtest_ShowMsg.h/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class justtest_ShowMsg */#ifndef _Included_justtest_ShowMsg#define _Included_justtest_ShowMsg#ifdef __cplusplusextern "C" {#endif/* * Class: justtest_ShowMsg * Method: greeting * Signature: ()V */JNIEXPORT void JNICALL Java_justtest_ShowMsg_greeting (JNIEnv *, jclass);#ifdef __cplusplus}#endif#endif//justtest_ShowMsg.cpp#include "justtest_ShowMsg.h"/* * Class: justtest_ShowMsg * Method: greeting * Signature: ()V */JNIEXPORT void JNICALL Java_justtest_ShowMsg_greeting (JNIEnv *env, jclass jThis){ printf("Welcome !!!");} 安装JDK之后,安装目录下有一个INCLUDE目录,将这个目录加入到VC的include路径列表中。另外INCLUDE目录下还有一个WIN32目录,也需要将他加入到VC的include路径列表中。 到这里来吧http://expert.csdn.net/Expert/topic/1332/1332013.xml?temp=.8996698我好把那个贴子结了。 转发的"数据库大全"---真的不错呀!!! 如何实现在JTable中输入数据,然后插入数据库中! [求助]把相对路径转为绝对路径的算法 关于jar包中配置文件相互引用的问题,高手进~~ 有关char与byte数组的相互转化问题 为什么输出的不是"AB","AB" 这怎么实现,刚刚学java,很多不会 应当简单吧?这些包在哪个文件夹下? 如何按某个角度在Grapnics上画文字???100分求解!!! GUI界面刷新,在函数里和在事件监听中效果不同 哪位大哥哥可以教我一下怎样使用WEBLOGIC。 怎样编写打开任何类型的文件,然后将该文件读取写到新建的文件里的Java类?
1。编写带有native方法的类,并将此类编译成class文件;
2。用javah工具生成.h头文件;
在你做的这个例子中,因该是在justtest目录的上一级目录下,执行:
javah -classpath . justtest.ShowMsg
之后会在该目录下生成一个文件justtest_ShowMsg.h
3。用一个.c(或.cpp)文件实现.h文件的函数;
5。创建VC创建win32dll工程,将.c(或.cpp)和.h文件文件加入该工程,编译生成dll文件,
6。将dll文件拷贝到,justtest目录的上一级目录下,执行:
java -cp . justtest.RunC
7.ok。我用你的例子做过了,没有问题,下面面是源程序://justtest_ShowMsg.h
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class justtest_ShowMsg */#ifndef _Included_justtest_ShowMsg
#define _Included_justtest_ShowMsg
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: justtest_ShowMsg
* Method: greeting
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_justtest_ShowMsg_greeting
(JNIEnv *, jclass);#ifdef __cplusplus
}
#endif
#endif
//justtest_ShowMsg.cpp#include "justtest_ShowMsg.h"/*
* Class: justtest_ShowMsg
* Method: greeting
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_justtest_ShowMsg_greeting
(JNIEnv *env, jclass jThis)
{
printf("Welcome !!!");
}
另外INCLUDE目录下还有一个WIN32目录,也需要将他加入到VC的include路径列表中。