java.lang.UnsatisfiedLinkError在web工程下的解决办法
2014-02-23 21:53
399 查看
最近在做关于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也需要这个链接库吧。
解决方法:首先将生成的动态链接库放在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也需要这个链接库吧。
相关文章推荐
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener错误的解决办法
- java.lang.ClassNotFoundException org.springframework.web.servlet.DispatcherServlet 解决办法
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListene解决办法
- WEB 开发错误收集(一)java java.lang.NoClassDefFoundError 的解决办法
- Java Web中调用Spark产生异常java.lang.NoSuchMethodError Jackson databind的解决办法
- Eclipse导入MyEclipse工程(web项目显示为java项目解决办法)
- Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V的解决办法
- Eclipse导入MyEclipse工程(web项目显示为java项目解决办法)
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener的解决办法
- IDEA调试SpringMvc项目时,出错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener,解决办法
- MyEclipse导入工程(web项目显示为java项目解决办法)
- Exception in thread "main" java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V解决办法
- java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet解决办法
- 新版ADT导入老工程出现“java.lang.NoClassDefFoundError”的解决办法
- 基于Web的Kafka管理器工具之Kafka-manager启动时出现Exception in thread "main" java.lang.UnsupportedClassVersionError错误解决办法(图文详解)
- 新版ADT导入老工程出现“java.lang.NoClassDefFoundError”的解决办法
- Eclipse导入MyEclipse工程(web项目显示为java项目解决办法)
- Caused by: java.lang.ClassCastException: org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer错误解决办法
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener错误的解决办法
- Android 出现java.lang.NoClassDefFoundError解决办法