java - 禁用 Java 字节码验证会导致什么问题?

标签 java jvm bytecode verification jvm-bytecode

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

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

是否存在可以接受禁用字节码验证的情况?

最佳答案

字节码验证确保代码不能做诸如将 int 重新解释为指针和进行任意内存访问之类的事情。如果您尝试在 Java 沙箱中运行不受信任的代码,这将非常有用。

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

关于java - 禁用 Java 字节码验证会导致什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44973708/

相关文章:

java - Java中的主线程什么时候停止?

java - Linux - Java - VM 初始化期间发生错误

python - 当一条线上有多个停止点时,python何时在一条线上停止?

Python 3 字节码格式

java - Google 对 Websphere 的反射(reflection) - 无法打开 url 连接

Java 防止出于不同目的的方法重复

java - Java运行时环境检测到 fatal error :

java - 如何删除 .jsp 中的 blob

java - G1 GC 是否支持 UseGCOverheadLimit?

java - 为什么Java语言需要字节码?为什么java要这样设计?