启动Java应用程序时使用-noverify

我已经看到许多应用程序将乐器类-javaagent作为参数并在加载时作为参数,这些应用程序也将a -noverify放到了命令行中。

Java文档说-noverify关闭了类验证。

但是,为什么有人要关闭验证,即使他们正在学习类呢?

回答:

我会说启动时间。加载类时,验证类是否正确需要花费一些时间。由于类可能以惰性方式加载(不是在应用程序启动时加载,而是在首次使用时加载),因此这可能会导致意外的和不希望的运行时延迟。

实际上,通常不需要检查该类。编译器不会发出任何无效的字节码或类构造。进行验证的原因是,该课程可能建立在一个系统上,可以在线托管,并可以通过不受保护的Internet传输给您。在此路径上,恶意攻击者可能会修改字节码,并创建编译器可能永远不会创建的内容。可能会使JVM崩溃或可能绕过安全性限制的事物。因此,在使用该类之前先对其进行验证。如果这是本地应用程序,通常无需再次检查字节码。

以上是 启动Java应用程序时使用-noverify 的全部内容, 来源链接: utcz.com/qa/435357.html

回到顶部