You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TornadoFX与lowagie iText库兼容性问题求助

TornadoFX应用添加lowagie iText 2.1.7后无法启动,无报错信息

我用TornadoFX(JavaFX + Kotlin)开发桌面应用,在依赖里加入com.lowagie:itext:2.1.7后,应用彻底无法启动——既没有报错输出,甚至连Main函数都进不去。有没有人碰到过类似问题?

依赖配置如下:

dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72")
implementation("org.jetbrains.kotlin:kotlin-reflect:1.3.72")
implementation("no.tornado:tornadofx:1.7.20")
implementation("org.jetbrains.exposed:exposed:0.10.4")
implementation("mysql:mysql-connector-java:8.0.18")
implementation("org.slf4j:slf4j-api:1.7.26")
implementation("ch.qos.logback:logback-classic:1.2.3")
implementation("ch.qos.logback:logback-core:1.2.3")
implementation("com.google.code.gson:gson:2.8.5")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.5")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-javafx:1.3.5")
implementation("net.sourceforge.jtds:jtds:1.3.1")

implementation("com.lowagie:itext:2.1.7")

implementation files("libs/OpenCV${opencv_version}/opencv-${opencv_version}.jar", "libs/RXTXcomm/RXTXcomm.jar")
runtimeOnly files("libs/OpenCV${opencv_version}/x64/opencv_java${opencv_version}.dll", "libs/RXTXcomm/rxtxSerial.dll")
}

可能的原因与解决方案

  • 依赖冲突:iText 2.1.7是超老旧版本(2009年发布),它依赖的bouncycastle等库,大概率和TornadoFX/JavaFX间接引入的同类型库存在版本冲突,导致启动时类加载静默失败,没有报错输出。
  • 替换兼容版本:直接弃用com.lowagie:itext:2.1.7,改用官方后续分支com.itextpdf:itextpdf,比如5.5.13.3版本,这个版本和现代JavaFX项目兼容性更好,不会触发严重冲突。
  • 排查类加载问题:如果必须用旧版本,添加JVM启动参数-verbose:class输出类加载日志,定位卡死的具体类;也可以用./gradlew dependencies查看依赖树,找出冲突模块后通过exclude排除,示例:
    implementation("com.lowagie:itext:2.1.7") {
        exclude group: "org.bouncycastle"
    }
    
  • 调整日志配置:项目用了logback但可能没捕获启动阶段日志,把logback日志级别调到DEBUG,或者添加JVM参数-Dlogback.configurationFile=path/to/your/logback.xml,确保启动日志能输出到控制台或文件。

内容的提问来源于stack exchange,提问作者MarceloSouza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 18:46:06