一个关于jni的问题,高分!!!

baozhi 2003-04-09 05:30:56
情况是这样的:
我现在已经有了一个使用JNI方法编译出来的动态连接库.我也有这动态库的头文件
内容如下:
/*
* Class: untitled2_callhasp
* Method: IsMemoHasp
* Signature: (JJLjava/lang/String;)I
*/
JNIEXPORT jint JNICALL Java_untitled2_callhasp_IsMemoHasp
(JNIEnv *, jobject, jlong, jlong, jstring);

我现在想写一个Main类来调用这个动态连接库,使用其中的IsMemoHasp方法。
我要如何才能调用这个动态连接库呢?请写详细点!谢谢了!
...全文
635 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
muymuy 2003-04-10
  • 打赏
  • 举报
回复
把System.load("hello");
改成
System.loadLibrary("hello");
baozhi 2003-04-09
  • 打赏
  • 举报
回复
我照楼上大哥说的改了,可是还是不行呀!!!!!
错误还是:
Exception in thread "main" java.lang.UnstaisfiedLinkError: IsMemoHasp
at test.display<Native Method>
at test.main<test.java:26>
baozhi 2003-04-09
  • 打赏
  • 举报
回复
请问
new callhasp ().IsMemoHasp(1l,1l, "");中的(1l,1l, "")是从何而来呀??ll与ll是什么意思呀?
muymuy 2003-04-09
  • 打赏
  • 举报
回复

package untitled2;

public class callhasp {
public native int IsMemoHasp(long l0, long l1, String str);
static{
System.load("hello");
}

/** Creates a new instance of test */
public callhasp () {
}

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new callhasp ().IsMemoHasp(1l,1l, "");
}

}
baozhi 2003-04-09
  • 打赏
  • 举报
回复
后来我设置了classpath环境变量后,再运行错误就变成:
Exception in thread "main" java.lang.UnstaisfiedLinkError: IsMemoHasp
at test.display<Native Method>
at test.main<test.java:26>

我要如何做?
baozhi 2003-04-09
  • 打赏
  • 举报
回复
不行呀,我的代码如下:
public class test {
public native void IsMemoHasp();
static{
System.load("hello");
}

/** Creates a new instance of test */
public test() {
}

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new test().IsMemoHasp();
}

}

可是不行,一运行就出下面的错:
java.lang.UnsatisfiedLinkError: Expecting an absolute path of the library: hello
at java.lang.Runtime.load0(Runtime.java:695)
at java.lang.System.load(System.java:797)
at test.<clinit>(test.java:14)
Exception in thread "main"

我已经确定HOLLE。DLL文件和这个类文件在一起了,急!!!!
clmate 2003-04-09
  • 打赏
  • 举报
回复
在自己的程序中加一个静态块,类似于
static{
System.loadLibrary(dllName);
}
soyol 2003-04-09
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1638/1638392.xml?temp=.4825861

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧