[ClassNotFoundException在命令行上独立运行Liquibase

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ClassNotFoundException在命令行上独立运行Liquibase相关的知识,希望对你有一定的参考价值。

我想在命令行上独立运行Liquibase(即不带“安装”)。但是,无论我尝试什么,我都会得到java.lang.ClassNotFoundException: ch.qos.logback.core.Context或其他一些logback类。

我检查了Liquibase pom.xml,以确切地找到它需要哪些依赖项,并相应地提供了它们。

1。尝试

java -jar liquibase-core-3.8.6.jar 
     -cp jaxb-api-2.3.0.jar:snakeyaml-1.24.jar:slf4j-api-1.7.28.jarlogback-core-1.2.3.jar::logback-classic-1.2.3.jar 
     --classpath=backend/target/mywar.war 
     --changeLogFile=db/changelog/db.changelog-master.xml

2。和进一步尝试

[我了解-cpjava命令的常规类路径参数,而--classpath是Liquibase的程序参数,根据the documentation。但是,我仍然尝试了第一次尝试的各种参数组合,但无济于事。

答案

啊,愚蠢的我。如今,借助所有的IDE魔术,您忘记了如何在CLI上启动Java程序。

您不能将-jar-cp组合在一起,即,无法使用-jar在类路径上放置其他JAR。

因此,要解决此问题,您需要java -cp ... liquibase.integration.commandline.Main --classpath=...

以上是关于[ClassNotFoundException在命令行上独立运行Liquibase的主要内容,如果未能解决你的问题,请参考以下文章

ClassNotFoundException:org.sqlite.JDBC

ClassNotFoundException和NoClassDefFoundError

ClassNotFoundException和NoClassDefFoundError

ClassNotFoundException:oracle.jdbc.driver.OracleDriver

如何解决 ClassNotFoundException?

ClassNotFoundException / mysql jdbc驱动程序[重复]