java.lang.UnsatisfiedLinkError在web工程下的解决办法

来源:互联网 发布:java线程实例 编辑:程序博客网 时间:2024/06/06 08:26

   最近在做关于jni的项目,遇到一个很奇怪的问题,一直提示java.lang.UnsatisfiedLinkError错误。在网上只找到了部分解决办法,后来自己稀里糊涂的搞定了。现按照我的方法解释如下:


解决方法:首先将生成的动态链接库放在src下,右击项目名称选择Build Path --> Configure Build Path, 在source目录下更改Native library location的值为.dll文件所在的文件夹位置。


状况2:之前写那些java代码是在notepad下写的,没有建包。后来利用eclipse操作时发现只能将java代码放在默认包下才能运行成功。但是又出来一个新的问题:自从jdk1.4后,所有的类不能调用默认包下面的类,麻烦大了。我必须将这些java代码放在一个包里,运行,再次提示java.lang.UnsatisfiedLinkError错误。后来想明白了,按照jni步骤重新 “生成 .h 文件然后 .dll 库......”,因为原有的java文件加了一句“package com.jni;” 。重来后运行正常。


状况3:在eclipse下写测试代码运行正常,后来还加了一个适配器,改了一下接口,一切正常。可是当我将测试代码改为servlet后,也就是讲java工程改成web工程,再次提示java.lang.UnsatisfiedLinkError错误,这个在网上一直没找到解决办法。还好,明白这是因为库文件的连接位置有错误。于是我用everything搜索这个 xxx.dll 文件,发现在webapp下的工程下面也有一个 .dll 文件,可是Build Path只能编辑一个库位置。后来没着了,我就将这个 .dll 文件复制了一份到 system32文件夹下,结果发现,奇迹般好了。至于为什么,我只能怀疑是因为tomcat也需要这个链接库吧。


   

0 0
原创粉丝点击