热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

nativestatic,java中native关键字

2.关于execstack,需要首先sudoapt-getinstallexecstack进行安装:自己利用jni方式编译成的libxxx.so原本都是-usrli


问题总结:


堆栈太小,64位计算机的堆栈大小默认大于32位,如果将程序从64放入32运行,将出现错误,需要更改初始堆栈大小


(.so库提供了两个函数接口。 一个使用较大的图像,另一个处理较小的图像。 仅在调用上一个函数时溢出)


调用了以前在hadoop程序中使用jni用c语言编写的(libxxx.so )本地库(在第一台计算机上运行正常,但在另一台) 32位Ubuntu ) )并将其复制到群集


执行时发生错误:


anirrecoverablestackoverflowhasoccurred。


pleasecheckifanyofyourloaded.sofileshasenabledexecutablestack (seemanpageexecstack (8) )。


# afatalerrorhasbeendetectedbythejavaruntimeenvironment :


#JREversion:Java(TM ) seruntimeenvironment (7.0 _ 71-b14 )、build 1.7.0_71-b14 ) () ) ) )。


#JavaVM:Javahotspot(TM ) server VM (24.71-b01混合建模Linux-x86 ) ) ) ) ) ) ) ) )


# failedtowritecoredump.coredumpshavebeendisabled.toenablecoredumping,try ' ulimit-c unlimited ' beforestartingjavagagaing


eclipse指出的错误主要有三点:


libxxx.so库堆栈溢出


要在linux上使用execstack设置libxxx.so,必须运行堆栈


core dump被禁止,建议使用ulimit -c unlimited


首先,我想您是不是没有向. so文件添加执行权限。


于是我发现虽然是sudo chmod a x,但还是不行。


因此,根据错误信息,我从后向前在网上搜索了几种解决方法:


1.ulimit 33603358 www.cn blogs.com/leaven/archive/2011/04/22/2024539.html,ulimit -c unlimited设置完成后,有何作用


对于execstack,必须首先安装sudo apt-get install execstack。


自己利用jni方式编译的libxxx.so本来都是


- /usr/lib/libTest.so


由于发现文件中没有设置执行堆栈,因此execstack -s /usr/lib/libTest.so


但是没有效果,程序仍然是错误的。


3 .最后,重点是设置分配给java VM虚拟机的堆栈大小。


我看了几个关于虚拟机参数设置的页面:


使用第一种方法。 无法执行java -Xss512K命令。 因此,按照第三种方法,直接在eclipse的运行时配置s中设置虚拟机参数。


好了!


推荐阅读
author-avatar
陈陈
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有