java.lang.NoSuchMethodError:com.google.common.base.Premissions
我得到这个错误java.lang.NoSuchMethodError:com.google.common.base.Premissions,java,selenium,jakarta-ee,guava,Java,Selenium,Jakarta Ee,Guava,我得到这个错误 java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:124
java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:124)
at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:32)
at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:137)
at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:339)
at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:88)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123)
我曾读到,这可能是因为我的番石榴版本,但我的番石榴版本是更新的,我不知道为什么我得到这个错误
在我的maven pom.xml中,我有如下依赖项
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.10.0</version>
</dependency>
爪哇
看起来像是类路径问题。我们的类路径中有什么版本的guava-X.jar?(最有可能在webapp的WEB-INF/lib中)。可能的解决方案是在pom.xml中显式声明guava的最新版本。对于3.10.0版硒,您需要:
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>24.0-jre</version>
</dependency>
番石榴
番石榴
24.0-jre
看起来像是类路径问题。我们的类路径中有什么版本的guava-X.jar?(最有可能在webapp的WEB-INF/lib中)。可能的解决方案是在pom.xml中显式声明guava的最新版本。对于3.10.0版硒,您需要:
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>24.0-jre</version>
</dependency>
番石榴
番石榴
24.0-jre
当我从库路径中删除Google Collections jar时,我找到了一个可能相关错误消息的解决方案
(来源)当我从lib路径中删除Google Collections jar时,我找到了一个可能相关错误消息的解决方案
(来源)Im使用guava-23.6-jre,我尝试添加此依赖项,它将我更新到guava 24.0-jre,但仍然不起作用。我尝试了从24.0-jre到18.0的所有版本的guava,但没有一个有效。您是否检查过,当您在pom中更改版本时,此版本实际上被放入WEB-INF/lib文件夹?我的WEB-INF文件夹为空,里面没有任何lib文件夹。我将上传我的项目结构的截图。是的,它是空的,因为这些是来源。一旦您的项目被构建并部署到服务器(tomcat?-to-webapps文件夹),那么它很可能被打包为project.war文件。这是一个zip存档文件-如果您将其重命名为project.zip,然后解包,您应该会在WEB-INF one.Im中看到一个lib文件夹,它使用的是guava-23.6-jre,我尝试添加此依赖项,它会将我更新到guava 24.0-jre,但仍然不起作用。我尝试了从24.0-jre到18.0的所有版本的guava,但没有人起作用。您是否检查过,当您在pom中更改版本时,此版本实际上会放入WEB-INF/lib文件夹?我的WEB-INF文件夹为空,其中没有任何lib文件夹。我将上传我的项目结构的截图。是的,它是空的,因为这些是来源。一旦您的项目被构建并部署到服务器(tomcat?-to-webapps文件夹),那么它很可能被打包为project.war文件。这是一个zip归档文件-如果您将其重命名为project.zip,然后解包,您应该会在WEB-INF中看到一个lib文件夹。