这样试试 public class HelloWorld{ public native void displayHelloWorld(); static { System.loadLibrary("hello"); } }public class test{ public static void main(String[] args){ HelloWorld.displayHelloWorld(); } }
把你的dll放到system目录下或者当前目录下,再试试
cablink() 我是把dll文件放在了当前目录下的。 用了你的方法,这样的错误: exception in thread "main" java.lang.nosuchmethoderror:main
public class HelloWorld{
public native void displayHelloWorld();
static {
System.loadLibrary("hello");
}
}public class test{
public static void main(String[] args){
HelloWorld.displayHelloWorld();
}
}
我是把dll文件放在了当前目录下的。
用了你的方法,这样的错误:
exception in thread "main" java.lang.nosuchmethoderror:main
不太懂dll怎么贴出来
怎么没有回复了,
还要你们的帮忙啊
dll测试过了吗?如果你用vc开发dll,在vc中可以设置用java程序debug dll的,试试就知道了.
可是结果还是一样的,总是原来的那些错误。
另外在Http://jdeveloper.yeah.net上有一篇“在Windows 中实现 Java 本地方法”的文章,你可以去看一看。我试过一次,成功了。你也试一试。
这个错误是因为它在dll里面找不到这个对应的实现方法,或你没有生成dll
classpath 是不是就是开始安装jdk的时候
在autoexec里面设置的command路径?
写好了类和本地方法之后
要大包才可以实现吗?
怎么样大包?
有的只是一个HelloWorld.h文件
它是通过javah -jni HelloWorld生成的。原码如下:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloWorld */
#include "Stdafx.h"
#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HelloWorld
* Method: displayHelloWorld
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld
(JNIEnv *, jobject);#ifdef __cplusplus
}
#endif
#endif
我想可能是dll文件的原因,在用vc生成dll文件时
我把precompiled headers 设置成了not use,要不根本就通不过编译。
dll文件怎样去测试?
那篇文章
在什么地方,我没有找到
位置可以具体一点吗?
那个例子实在是太好了!
真的是大受启发啊!
分数是你的了。
谢谢你!也谢谢大家,我想还是我的.dll文件做的不对。