这个问题我查了好几天,终于找到这篇文章,转载一下,希望更多人,从中找到解决方案.

转载地址:http://java.chinaitlab.com/base/838280.html

 运行JSP报表程序页面出现java.lang.UnsatisfiedLinkError: CC错误有以下几种原因和处理方法:

  1、请查看控制台的错误信息

  a:如果控制台的消息是类似

  java.lang.UnsatisfiedLinkError: no MRChkLib in java.library.path,Error loading library MRChkLib

  这样的错误信息,那么是因为MRChkLib.dll没有拷贝到windows的System32目录下. (MRChkLib.dll是加密锁的JAVA接口文件,文件在报表安装目录DogDriver\JavaAPI下可以找到) 并且要注意PATH环境变量中要包含System32目录。(如果服务器操作系统是Linux,那么使用报表安装目录DogDriver\JavaAPI 下的libMRChkLib.so文件,将libMRChkLib.so复制到WebServer的启动bin目录。如果在这个目录下仍然出现can not load library错误,请设置系统环境变量LD_LIBRARY_PATH的值为libMRChkLib.so所在的目录。

  例如:如果libMRChkLib.so在/somedir目录下,则 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/somedir)

  b:如果控制台的消息是类似

  java.lang.unsatisfiedLinkError :native libery c:\winnt\system32\mrchklib.dll already loaded in another classLoader error loading mrchklib.dll

  这样的错误信息,那么是因为WebAPP在重新被启动之后,无法再次加载动态库造成的,这是java的约束,Java不允许一个实例加载多次动态库.可以这样解决,将mr.jar拷贝到WebServer的lib目录,删除/WEB-INF/lib目录下的mr.jar,然后重新启动 webserver。

  2、如果一个webserver上有多个报表应用,请将/WEB-INF/lib/mr.jar移动到WebServer的lib目录下,确保每一个Web应用程序目录下都没有mr.jar,而只有WebServer的lib目录下有该文件,重启webserver.

  3、一个Webserver上只能有一个mr.jar文件,删掉多余的mr*.jar文件,然后清除webserver临时文件,重新启动webserver。

  ===================================================================================

  最近项目中用到了jni,于是安装了eclipse的cdt和MinGW来用,以前没怎么动过C语言,网上找了下教程,倒是挺容易的,一路弄下来也没提示什么错误,但是在最后调用本地方法时却遇到了大麻烦,总是提示找不到方法。即使一个简单的HelloWorld,也是一样

  Exception in thread "main" java.lang.UnsatisfiedLinkError: HelloWorld.print()V

  奇怪了,loadLibrary()没有问题,怎么会找不到方法呢?用dll export viewer察看,导出的方法为

  函数名 地址 偏移量

  Java_HelloWorld_print@8 0x67741250 0x00001250

  实在没办法了,只好安装庞大的visual studio重新来编译,调用成功了!

  再次用dll export viewer查看,发现函数名的前面多了一条下划线

  函数名 地址 偏移量

  _Java_HelloWorld_print@8 0x67741250 0x00001250

  看来是给MinGW少传了某个参数,经过网上查阅资料,终于找到一个解决方案:给MinGW的ld命令指定一个参数--kill-at即可

  gcc -Wl, --kill-at -shared -o jnihello.dll HelloWorld.c

  再次用dll export viewer查看,发现导出的函数名称变为

  函数名 地址 偏移量

  Java_HelloWorld_print 0x67741250 0x00001250

  --kill-at指令去掉了函数名称后缀的@,并没有像msvc那样添加前缀的下划线

  ========================================================================

  现象: java.lang.UnsatisfiedLinkError: Native Library xxx.dll already loaded in another classloader at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1551) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1511) at java.lang.Runtime.loadLibrary0(Runtime.java:788) at java.lang.System.loadLibrary(System.java:834) 分析:这种错误在我们使用热启动方式发布某个使用了JNI技术的Web应用时,并将调用年native方法的jar包独立部署在该应用下面,当我们的Web应用有了更新以后,在调用到该jar包封装的native方法时,会抛出该错误。(以上OS为Windows,若是Linux或Unix,应该是xxx.so 报错) 这是因为Web服务器已经在第一次加载该应用时,已经load了该dll,当该应用被再次热启动时,该dll将重新被加载,于是报错。解决方案: 一、将含有JNI调用的jar包部署在Web服务器的公用lib库中。Web应用再发布时可以不用加载;二、jar包部署不变,在该Web中实现一个listener,监听是否第一次启动,若不是第一次启动,屏蔽掉该jar包所含dll的加载。

java.lang.UnsatisfiedLinkError:sayHello()相关推荐

  1. System.err: java.lang.UnsatisfiedLinkError: dlopen failed: library “libc++_shared.so“ not found

    Android Studio 配置OpenCV 的时候出现这样的提示 黄色警告libc++_shared.so" not found : System.err: java.lang.Unsa ...

  2. java.lang.UnsatisfiedLinkError:no jhdf5 in java.library.path问题的解决

    笔者在MyEclipse中进行HDF文件的读写,遇到了java.lang.UnsatisfiedLinkError:no jhdf5 in java.library.path的问题.笔者详细地记录了整 ...

  3. linux下启动jconsole报 java.lang.UnsatisfiedLinkError

    在linux下面启动jconsole报 java.lang.UnsatisfiedLinkError异常: java.lang.UnsatisfiedLinkError: /usr/local/jdk ...

  4. 分析Android :java.lang.UnsatisfiedLinkError: dlopen failed * is 32-bit instead of 64-bit

    Crash 日志: java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/com.ireader.plug.sdk/iread ...

  5. Caused by java.lang.UnsatisfiedLinkError Cannot load library

    Caused by: java.lang.UnsatisfiedLinkError: Cannot load library 在使用NDK调用C++代码编译而成的链接库文件的时候,有时候会出现链接错误 ...

  6. JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法

    JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法 参考文章: (1)JNI调用native方法出现 ...

  7. java.lang.UnsatisfiedLinkError

    java.lang.UnsatisfiedLinkError 原因:jni注册的时候匹配写错了: "(I[B)[B" 如下: static JNINativeMethod meth ...

  8. Android java.lang.UnsatisfiedLinkError

    原文链接:http://blog.csdn.net/greenmemo/article/details/51777140 项目中使用sqlcipher加密数据库,使用了so库,模拟器运行的时候报错,换 ...

  9. java.lang.UnsatisfiedLinkError解决方法汇集

    运行JSP报表程序页面出现java.lang.UnsatisfiedLinkError: CC错误有以下几种原因和处理方法: 1.请查看控制台的错误信息 a:如果控制台的消息是类似 java.lang ...

最新文章

  1. GRUB基本使用介绍
  2. DC-5 vulnhub靶机实战
  3. 导入不了css,CSS不导入。
  4. MySQL 数据库误删除后的数据恢复操作说明
  5. HTTP之Last-Modified、Etage、If-Modified-Since理论与实践(C++ Qt实现)
  6. Ubuntu 20.04安装微信,QQ,TIM
  7. 华为交换机删除配置命令access_华为交换机基本配置命令详解
  8. Aliplayer的各种坑
  9. 图像处理(8) : 模板匹配
  10. 苹方字体 for linux,使用macOS苹方替换Windows 10微软雅黑
  11. 802.11n无线网卡驱动linux,安装Broadcom Linux hybrid 无线网卡驱动总结
  12. 用c++写bilibili番剧抢楼程序
  13. 设计模式之--策略模式
  14. Django学习 day79之drf第三日
  15. 投资案例分析:投资创业公司时,VC 关注什么?
  16. zxing换行_为什么我的word里的横线上写完一行字不能自动换行,?
  17. 像素坐标系、图像坐标系、相机坐标系、世界坐标系
  18. SE 的 ONNX 图
  19. 基本概念学习(1004)---固件
  20. 史上最全 69 道 Spring 面试题和答案

热门文章

  1. malloc实现原理探究
  2. DedeCMSV6内容管理系统源码
  3. 滴滴出行,能否引入大数据风控技术保障乘客安全?
  4. [宋史学习] 积贫积弱局面的形成 --- 澶渊之盟后的政治形势
  5. 富文本图片太大溢出以及富文本显示问题
  6. python智能写作_百度AI智能创作平台(百度ai智能写作)
  7. win7更改桌面路径
  8. 004测试用例(4)
  9. windows磁盘黑色未分配区域扩展到逻辑驱动器
  10. dataTable修改后数据刷新(数据重载)