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

Gradle+JavaFX项目引入Tess4j遇模块找不到编译运行错误求助

解决Tess4J在模块化Gradle+JavaFX项目中的模块找不到问题

核心问题分析

  1. 编译报错module not found: tess4j:Gradle编译阶段未将Tess4J依赖加入模块路径,尽管IDE能识别依赖并自动补全requires tess4j;,但编译时需要显式配置模块路径才能识别自动模块。
  2. 运行时Module supermarket not found:一是mainClass配置未遵循模块化项目的格式要求;二是你使用的jlink插件仅支持带module-info的显式模块,而Tess4J 5.x属于自动模块(通过MANIFEST.MF定义模块名),无法被jlink打包,导致运行时找不到模块。

快速解决方案(移除jlink,适合大多数场景)

如果不需要自定义Java运行时镜像,直接移除jlink相关配置,调整Gradle和模块设置即可解决问题:

1. 修改build.gradle配置

  • 删除jlink插件及对应配置:
    // 删掉以下内容
    // id 'org.beryx.jlink' version '3.0.1'
    // ...
    // jlink {
    //     options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
    //     launcher {
    //         name = 'supermarket'
    //     }
    // }
    
  • 修正mainClass配置(必须遵循模块名/全限定主类名格式,假设你的主类是supermarket.Main):
    application {
        mainClass = 'supermarket/supermarket.Main'
    }
    
  • 添加编译参数,确保Tess4J被加入模块路径:
    tasks.withType(JavaCompile) {
        options.compilerArgs += [
            '--module-path', classpath.asPath,
            '--add-modules', 'tess4j'
        ]
    }
    

2. 验证与构建

  • 执行./gradlew clean build清理并重新构建项目
  • 运行项目:./gradlew run

进阶方案(保留jlink,适合需要自定义运行时的场景)

jlink不支持自动模块,需手动将Tess4J转为显式模块:

  1. 下载Tess4J 5.13.0的jar包,解压后在根目录添加module-info.java:
    module tess4j {
        exports net.sourceforge.tess4j;
        exports net.sourceforge.tess4j.util;
        requires java.desktop;
        requires java.logging;
        requires org.slf4j;
        opens net.sourceforge.tess4j to com.google.guava;
    }
    
  2. 使用javac编译该module-info.java,重新打包成jar文件
  3. 将自定义的显式模块jar替换项目中依赖的Tess4J jar,或发布到本地Maven仓库后引入
  4. 在build.gradle的javafx模块配置中添加tess4j:
    javafx {
        version = "22.0.1"
        modules = [ 'javafx.controls', 'javafx.fxml', 'javafx.swing', 'tess4j' ]
    }
    
  5. 重新执行jlink打包:./gradlew jlink

额外检查项

  • 确认主类的全限定名正确,且确实位于supermarket模块下
  • 执行./gradlew dependencies检查Tess4J是否出现在项目依赖树中
  • 若IDE仍有异常提示,执行Gradle同步并重启VSCode

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 18:40:19