参考java.sun.com上提供的文章。或者在,Java 2核心技术(2) 高级特性中有讲解。
解决方案 »
- spring与hibernate整合时Action中出现空指针,急呀!!
- matlab 生成jar时候报错
- JSF调用web service 的wsdl文件生成bean的问题
- FCKeditor编辑的文本存入oracle数据库,然后按格式读取出来
- 引入出现错误 getHibernateTemplate()
- socket 连接到服务器 一台机子不能多连吗???
- 请教:面试时如何介绍自己的项目。
- 請教tomcat single sign on的問題
- 在程序中动态新增、删除SQLserver2000表中的字段(请CSDN的高手帮忙,小弟感激不尽!)
- java.sql.SQLException: No suitable driver
- xml转换的问题!!!
- tomcat4.0的问题!!十万火急!!!!!
我按java.sun.com上提供的简单displayHelloWorld例子做后,运行后提示:
java.lang.UnsatisfiedLinkError: displayHelloWorld
at jnitst2.HelloWorld.displayHelloWorld(Native Method)
at jnitst2.HelloWorld.main(HelloWorld.java:20)
Exception in thread "main"
不知道什么原因?
projectname\src\jnitst\HelloWrold.java
projectname\classes\jnitst\HelloWrold.class
projectname\classes\jnitst\HelloWrold.h
projectname\classes\jnitst\HelloWroldImp.c
projectname\classes\jnitst\HelloWrold.dll
然后在环境变量中设置path为projectname\classes\jnitst,在classpath中设置该目录projectname\classes\jnitst\HelloWrold.dll,
运行.class, 总是抛出java.lang.UnsatisfiedLinkError, 好象System.loadLibrary("hello")找不到hello.dll,不知道错在什么地方?我用javah生成.h时在.class文件同目录下用javah HelloWorld和javah -jni HelloWorld总是提示Error:class HelloWorld could not be found.
要用javah -jni -classpath D;\...\jnitst\ HelloWorld,才能生成头文件.
这是为什么? 是不是生成头文件有问题才造成运行时抛出UnsatisfiedLinkError?
只要设置projectname\classes\jnitst\就可以了,
set CLASSPATH=%CLASSPATH%;projectname\classes\jnitst\
javah -jni 包.HelloWorld
即把projectname\classes\jnitst\HelloWrold.class
改成projectname\HelloWrold.class
可以把dll放到系统目录下。
这可能是jar的设计问题,因为dll被装载进来是以包的路径为参照的,所以如果你不放到第一级目录的话,它会找不到dll的内存地址。
我已经成功的调用vc++做的动态连接库(active控件),不过我没有明白的是我可以调用控件的方法,当我调用它的属性(get_***,put_***)的时候就出现问题啦。
请问有人知道吗?