利用JNA,java调用c的dll动态连库异常。。。

ladybirds2008 2010-05-08 10:14:15
利用JNA,java调用c的dll动态连库异常。当调用dll时候tomcat立马自动关闭出现以下东东。。。。请大侠给解释是什么原因,我从未见到过地。。怎么解决呀。。
#
# An unexpected error has been detected by Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0cbc5e9d, pid=1496, tid=4088
#
# Java VM: Java HotSpot(TM) Client VM (11.3-b02 mixed mode windows-x86)
# Problematic frame:
# C [modify_sfile.dll+0x5e9d]
#
# An error report file with more information is saved as:
# E:\Tomcat5.5\bin\hs_err_pid1496.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
...全文
673 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
白一梓 2012-10-19
  • 打赏
  • 举报
回复
C中的缓冲区溢出了,所以虚拟机崩溃了 。出现这个原因,一般是C语言的防御性设计做的不够好。
阿丘-XM 2012-01-30
  • 打赏
  • 举报
回复
不是很明白

没玩过tomcat
luoyuke520 2011-07-26
  • 打赏
  • 举报
回复
补充:java调用c的动态库出现这个问题很正常,我现在做的项目就要和c打交道,每次出现JVM崩溃都是c的动态库的问题,建议你重点放在动态库上,另外,你可以用debuge调试,看看到底是执行哪行语句出现的JVM崩溃,如果是你调用c的动态库的语句崩溃的,那么不用怀疑,就是c的动态库引起的,c的动态库有内存泄漏的问题,如果用java调用,一点内存问题就会引起JVM崩溃,这是我的经验之谈!
luoyuke520 2011-07-26
  • 打赏
  • 举报
回复
这是JVM(java虚拟机)崩溃了,一般原因是你的这个JNA调用动态库出现内存泄漏的问题,虽然还可能是其他问题,但是很少出现的,你自己检查下这个动态库是不是什么东西没有关闭导致内存泄漏的!
mrywhh 2011-07-01
  • 打赏
  • 举报
回复
解决了吗?分享一下啊
meloforever 2011-06-28
  • 打赏
  • 举报
回复
我现在也有类似的问题,您是怎么解决的?求解决方式!
gloomyfish 2010-05-11
  • 打赏
  • 举报
回复
检查你的参数类型,指针访问,特别检查是否是包的全路径去调用。
ladybirds2008 2010-05-11
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 jia20003 的回复:]

检查你的参数类型,指针访问,特别检查是否是包的全路径去调用。
[/Quote]昨天问题已经解决掉了 。。,。是因为传参有问题造成的。。。。不过那段带#的异常东西 是个什么意思还是不懂。。。
ladybirds2008 2010-05-10
  • 打赏
  • 举报
回复
怎么 就没有人来回答呢 都这么不热情啊。。。。
ladybirds2008 2010-05-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 colin_pxx 的回复:]

JVM冲突?要不你更新JVM试试 可能是版本问题跟C有不兼容的地方
[/Quote]我单个 写了一个就好用的啊。。。为什么换个dll就不可以了呢。。。。
colin_pxx 2010-05-10
  • 打赏
  • 举报
回复
JVM冲突?要不你更新JVM试试 可能是版本问题跟C有不兼容的地方
OSOMC 2010-05-10
  • 打赏
  • 举报
回复
哦耶~~~不知道,谢谢!
ladybirds2008 2010-05-10
  • 打赏
  • 举报
回复
都沉2天了。。。还有高人在吗?。。。。
ladybirds2008 2010-05-08
  • 打赏
  • 举报
回复
怎么没有人回答呢。。。。。哭。。。。
ladybirds2008 2010-05-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bao110908 的回复:]

提问的智慧
http://community.csdn.net/IndexPage/SmartQuestion.aspx
[/Quote] 晕 是我说的不够清楚吗?利用JNA技术,用java调用c的xx.dll动态库,当java代码执行到调用xx.dll的 代码时候,tomcat立马自动关闭出现以上面哪些乱七八糟看不懂的 带 # 的东西。。。。不知道还要想知道什么啊 。。这样说吧。。。我就是想知道 这段带#的一大断 是什么东西?
取你猪头 2010-05-08
  • 打赏
  • 举报
回复
不会,帮顶,接分!
ladybirds2008 2010-05-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 niujw002 的回复:]
是dll中发送了非法地址访问了。通常是你在调用dll的方法时传递的参数不对。
[/Quote]厉害。。我也测试发现,当不传参数时候会成功执行。可是我传的参数必须是现在的2个不然根本就不符合要求了。。。那我就可以下结论不是我的问题,是dll的问题了,是他们的参数设置有问题和java的不符。。。。
或许有更好的解释,请高人指点一二呀。。。
niujw002 2010-05-08
  • 打赏
  • 举报
回复
是dll中发送了非法地址访问了。通常是你在调用dll的方法时传递的参数不对。
goodmrning 2010-05-08
  • 打赏
  • 举报
回复
可怜的孩子!!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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