我想使用liiqubase,但是当我想让它通过命令行运行时,会发生这种情况:

PS C:\Users\Ferid\Downloads\liquibase-3.6.0-bin> .\liquibase
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: ch/qos/logback/core/filter/Filter
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
    at java.lang.Class.privateGetMethodRecursive(Unknown Source)
    at java.lang.Class.getMethod0(Unknown Source)
    at java.lang.Class.getMethod(Unknown Source)
    at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
 Caused by: java.lang.ClassNotFoundException: ch.qos.logback.core.filter.Filter
    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)
    ... 7 more

我试过liquibase-3.6.1,现在又试过liquibase-3.6.0

推荐答案

库文件夹中缺少一个必需的库.

请参阅下面的错误报告链接,其中另一个用户有相同的问题.

3.6.1似乎仍然缺少lib文件夹中的slf4j-api-1.7.25 并且我仍然收到通过CLI调用LiquiBase的错误.

您有三个选项:

  1. 你自己go 图书馆买[here]件.
  2. 等待打好补丁的 版本(也许您可以自己提交修复程序).
  3. 恢复到较旧版本(3.5.5应可用)

有关错误报告,请参见此处:

Database相关问答推荐

如何替换对象数组内的数组元素

Rust 全局存储数据库连接

mongodb聚合从另一个查询中获取值

术语 SSTable 和 LSM Tree 有什么区别

使用 PostgresQL 判断现有列的约束

PostgreSQL 嵌套 INSERTs / WITHs 用于外键插入

nodejs和数据库如何通信 ?

如何最好地在 MS SQL Server 中复制整个数据库?

库存数据库的最佳 struct

在 MySQL 中实现一对一关系时确定外键

返回 SQLite 数据库中表大小的查询

如何通过 PHP 和 Linux 使用 pdo 连接到 mssql?

Select * 和 Select [列出每个列] 之间有区别吗

mysql 无法从存储引擎读取自增值

传递依赖有什么问题?

我应该混淆用户的数据库 ID 吗?

Firebase 排行榜排名

每个开发人员一个数据库?

数据库事务是否防止竞争条件?

如何在 Java 中检测 SQL 表的存在?