当使用hsql运行测试时,我得到了这个异常:
NoSuchMethodError: org.hsqldb.DatabaseURL.parseURL(Ljava/lang/String; ZZ)Lorg/hsqldb/persist/HsqlProperties
我在另一篇文章中发现了这个问题,它链接到一个解决方案,其中说这是版本1.8的jar和版本2.2.5的另一个之间的冲突。我检查了项目的库和.classpath
,它只有1.8个。另外,我从类路径中删除了这个选项,并且仍然得到了相同的异常。
还是搞不清楚。
发布于 2013-09-16 09:52:52
您正在使用库的更高版本进行编译,并使用更早的版本运行它。
在编译时存在的方法在运行时-> NoSuchMethodError中不存在。
解决方案:在运行时使用相同的库。
发布于 2013-09-17 22:35:57
如果您使用maven (正如您前面提到的)项目,那么您有可能从pom.xml继承一些东西,并在项目的依赖项中覆盖它,这可能会导致冲突。
注意,对于hsql
,maven组id从hsqldb
更改为org.hsqldb
,这可能使让这两个jars一起生活在同一个项目中变得很容易,并导致这个问题。
发布于 2019-04-01 14:22:34
用build.sbt
中的装配阴影修复了它
assemblyShadeRules in assembly := Seq(
ShadeRule.rename("org.hsqldb.**" -> "shade-hsqldb.@1").inAll
)
https://stackoverflow.com/questions/18825056
复制相似问题