使用 1.5(或启用 1.5 比较模式的 1.6)构建的 java 程序会给出以下警告:
Java HotSpot(TM) 服务器 VM 警告:您已加载库
mynativelib.so 可能禁用了堆栈保护。
虚拟机现在将尝试修复堆栈防护。强烈建议您修复
使用“execstack -c”链接库,或使用“-z”链接
noexecstack'。
它似乎不会造成问题,但显然对我们的客户来说看起来有点可怕。
我不认为在 7 中构建 java 位可以解决这个问题,但我很难看到文档在哪里说明如何为 Java 7 构建 JNI 库,这就是警告暗示我应该采取不同的做法。
那么我应该去哪里寻找呢?
在这里找到了答案禁用堆栈保护警告(ACF9、JVM 1.7、Linux) https://groups.google.com/forum/#!topic/fusionreactor/iRsnTT3al04
He said
这是 Linux 上 Java 7 HotSpot 编译器的一项功能,它会尝试阻止用 C 编写并链接到 Java(所谓的 Java 本机接口 - JNI)的代码,以免在编写不当或恶意时停止整个虚拟机。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)