在java 7上用JNI运行java 5/6会出现堆栈保护警告

 2023-01-20    280  

问题描述

使用1.5(或1.6具有1.5可比性模式开启)构建的Java程序给出了此警告:

Java热点(TM)服务器VM警告:您已加载库
Mynativelib.so可能会禁用堆栈守卫.
VM现在将尝试修复堆栈防护罩.强烈建议您修复
带有” execstack -c”的库,或将其与’-z链接
noexecstack’.

在java 7上用JNI运行java 5/6会出现堆栈保护警告

这似乎并没有引起问题,但显然对我们的客户看起来有些恐怖.
我不认为在7中构建Java位会解决此问题,但我正在努力查看文档说如何为Java 7构建Jni Libs的位置,这就是警告我应该做的不同.

那么我应该在哪里看?

推荐答案

在这里找到答案
https://groups.google.com/forum/#!

他说

这是Linux上Java 7的Hotspot编译器中的一个功能,该功能试图停止用C编写的代码并链接到Java(所谓的Java本机接口-JNI),如果不撰写整个VM,则如果编写不好或不良编写.

其他推荐答案

另一种可能性是您要运行的Java+JNI应用程序是针对Linux 32bit编译的.

在这种情况下,两个解决方案:

  • 如果您具有应用程序的源代码,请将其移植到Linux 64bit
  • 如果没有,请下载应用程序的Linux 64位版本.

以上所述是小编给大家介绍的在java 7上用JNI运行java 5/6会出现堆栈保护警告,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/25962.html

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

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。