什么问题可以禁用Java字节码验证?

时间:2017-07-07 14:46:52

标签: java jvm bytecode verification jvm-bytecode

This answer表示验证用于确保Java字节码"遵循Java语言规则以确保安全"。

如果未执行此验证,则允许运行不安全的字节码。这会导致什么问题?

是否存在禁用字节码验证的情况?

2 个答案:

答案 0 :(得分:1)

字节码验证确保代码不会像将指针重新解释为指针那样执行任意内存访问。如果您尝试在Java沙箱中运行不受信任的代码,这将非常有用。

如果你完全信任你正在运行的所有代码,那么它就没那么有用了,因为在那种情况下它会捕获意外错误。验证信息也可能被输入优化器 - 我对此不确定,但优化器基本上必须验证代码,以便进行任何有用的静态分析。

答案 1 :(得分:0)

强烈建议不要使用" -Xverify:none"生产环境中的选项,因为它禁用字节代码验证并导致随机崩溃。请查看详细博客here