开发工具分享
  • 首页
  • 计算科学
  • 文化旅游
  • 项目和网站
    • OSSEZ 计算技术
    • USRealEstate 社区
    • 地区文化
    • CWIKI.US
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
CWIKIUS.CN
一个有独立思考和温度的清新站
  1. Home
  2. Computer Science
  3. This article

JVM 的 noverify 启动参数

2023年04月01日 491Browse 0Like 0Comments

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

校验器执行的检查操作:

  1. 变量要在使用之前进行初始化。
  2. 方法调用与对象应用类型之间要匹配。
  3. 访问私有数据和方法的规则没有被违反。
  4. 对本地变量的访问都在运行时堆栈内。
  5. 运行时堆栈没有溢处。

如果你不希望 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.

 

2023-03-28_14-00-42

 

警告的原因为:
你的 JDK 使用了高于 13 的版本,但是你还是使用了-noverify 运行参数。

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

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

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

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

 

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

Tags: None
Last updated:2023年04月01日

HoneyMoose

有温度的人文和独立的思考

Like
< Previous
Next >

Comments

Cancel reply

Archives
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
Categories
  • Computer Science (2,362)
    • Confluence (663)
    • Gradle (12)
  • U.S. (482)
  • 文化旅游 (145)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1