如何修复“线程“主”中的异常” java.lang.VerifyError:无法从最终类继承”错误

时间:2019-11-24 15:43:32

标签: java eclipse selenium selenium-webdriver webdriver

我尝试在selenium java项目中运行webdriver脚本,然后遇到此错误。 之前我运行的是旧版本的Eclipse,一切都很好。当我切换到Eclipse 2019时就开始发生这种情况

我尝试搜索该问题,但找不到解决方法。

软件版本:

  • Eclipse 2019-09 R
  • JDK 8.0
  • ChromeDriver 78.0.3904.105
class NumberOne {
public static void main(String[] args) throws Exception {

    System.setProperty("webdriver.chrome.driver", "C://Selenium/chromedriver.exe");
    WebDriver driver = new ChromeDriver();
}
}

我正面临的错误

Exception in thread "main" java.lang.VerifyError: Cannot inherit from final class
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.openqa.selenium.os.OsProcess.<init>(OsProcess.java:54)
    at org.openqa.selenium.os.CommandLine.<init>(CommandLine.java:38)
    at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:183)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:79)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:168)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123)
    at numberOne.webdriver.main(webdriver.java:13)

1 个答案:

答案 0 :(得分:1)

此错误消息...

Exception in thread "main" java.lang.VerifyError: Cannot inherit from final class

...暗示版本不匹配,因为您针对其构建的类与您针对其进行测试的类之间存在不一致之处。

这似乎是纯粹的版本控制问题,最有可能的原因是您的构建类路径启动类路径之间存在冲突。换句话说,您的程序是针对不是final的类的版本编译的,但是您的程序是针对final的类的版本启动的。


解决方案

解决方案可以是以下任何一个或所有步骤;

  • 如果您使用的是 Maven ,请删除~/.m2缓存/目录。
  • 通过您的 IDE
  • 清理您的项目工作区重建您的项目,并且仅具有必需的依赖项。
  • (仅适用于 WindowsOS )使用CCleaner工具清除执行 Test Suite 前后的所有操作系统琐事。
  • 进行系统重启
  • 非root用户用户的身份执行@Test