美文网首页CWIKIUS
JVM 的 noverify 启动参数

JVM 的 noverify 启动参数

作者: HoneyMoose | 来源:发表于2023-03-28 02:06 被阅读0次

当 ClassLoader 加载的 Java 字节码时,字节码首先接受校验器(verifier)的校验。校验器负责检查那些指令无法执行的明显的破坏性的操作。

校验器执行的检查操作:

变量要在使用之前进行初始化。

方法调用与对象应用类型之间要匹配。

访问私有数据和方法的规则没有被违反。

对本地变量的访问都在运行时堆栈内。

运行时堆栈没有溢处。

如果你不希望 JVM 运行这个校验的话,你可以添加noverify参数

JDK 13 + 版本的问题

从 JDK 13 开始及其后续版本中,不建议继续使用-Xverify:none和-noverify参数。

否则,你将会得到下面的错误:

warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.

如果你使用的是 OpenJ9 的话,会得到下面的错误。

JVMJ9VM193W Since Java 13 -Xverify:none and -noverify were deprecated for removal and may not be accepted options in the future.

警告的原因为:

你的 JDK 使用了高于 13 的版本,但是你还是使用了-noverify运行参数。

你需要在 JVM 的运行中取消到上面这个参数。

在加载类时,验证类是否正确需要一些时间。由于类可能以延迟方式加载(不是在app start上,而是在第一次使用时),这可能会导致意外的运行时延迟。

实际上,类一般不需要检查。编译器不会发出任何无效的字节码或类构造。进行验证的原因是,该类可能构建在一个系统上,联机托管,并通过不受保护的internet传输给您。

在这个路径上,恶意攻击者可能修改字节码并创建编译器可能永远不会创建的内容;可以使JVM崩溃或可能绕过安全限制的东西。因此,在使用类之前对其进行验证。如果这是一个本地应用程序,通常不需要再次检查字节码。

https://www.ossez.com/t/jvm-noverify/14359

相关文章

  • 【转载】JVM推荐参数

    JVM参数设置、分析关键业务系统的JVM启动参数推荐

  • 五、JDK自带的性能监控工具

    jps 查看当前运行的所有java进程 jinfo 1)查看jvm启动参数2)修改jvm运行参数(启动参数有部分支...

  • JVM常用参数

    JVM常用项目启动参数

  • 5. JVM启动参数

    JVM启动Java文件语法格式2种: JVM启动时设置启动参数,会以特定字符开头来设置参数,具体分为几类: 以-开...

  • tomcat8.5修改默认jvm内存参数&解决shutdown关

    修改tomcat8.5默认jvm内存参数 1.查看java进程jvm参数 结果发现默认启动时,并没有配置jvm参数...

  • JVM启动参数分类

    JVM 启动参数,共分为3类: 配置 参数类型说明举例-standard标准参数。所有的JVM实现都必须实现这些参...

  • JVM启动参数

    JVM 启动参数形式主要有如下几种: 以 - 开头为标准参数,所有的JVM都要实现这些参数,并且向后兼容。如: 以...

  • JVM参数

    JMX监控调试参数 jps命令 jstat 上图表头描述: JVM启动参数| 参数 | 描述 ||-----|--...

  • Java GC分析

    [TOC] 1、如何收集GC日志 1.1、 配置JVM启动参数: 1.2、 GC相关启动参数说明 1.2.1、简单...

  • Java里的垃圾收集器

    首先, 我贴一段某位大神调优之后的JVM启动参数。 虽然很多时候使用框架部门给我们的默认JVM启动参数程序就能跑起...

网友评论

    本文标题:JVM 的 noverify 启动参数

    本文链接:https://www.haomeiwen.com/subject/eijtddtx.html