环境
win11
IntelliJ IDEA 2021.3.3
jdk17.0.10
maven3.8.4
说明
JavaOcr图像文字识别工具
图形化:javaFX 17
OCR引擎: rapidocr
启动类: com.hjy.RunApp
可直接运行 target/myOcr/myOcr.exe
菜单什么的还没有开发 后续有兴趣再说吧
界面
项目地址
https://gitee.com/hujingyu/javafx_ocr
gitee里除了target都有,target里包含了打包后的文件还有jre,放不下,放在文章开头,不需要积分自行下载。也可gitee下载,自己去打包
记录一下开发遇到的问题
1.创建项目必须是jdk11以上 这里建议直接使用jdk17
2.创建项目后,因为jdk9以后为模块化项目,项目中有个module-info.java,
每次从maven中引入jar包的时候必须在module-info.java里同步配置,不然java类中找不到
3.最让人头大的就是打包问题,这里走了好多弯路。javafx自带的打包jlink,必须是模块化项目, 但是你maven引入的jar包不一定是模块化过的,只要有一个jar包不是模块化的,就会打包失败 。
网上百度了很多方法,有的人说将非模块化的jar包自己模块化云云,搞得心乱如麻。
最后参考帖子把module-info.java删掉,建一个RunApp类来启动OcrApplication,这样做会导致打包后的jar文件大。
到这里在idea里启动是没问题了,maven引入jar包也不需要再同步修改module-info.java了,但是打包还是不行。
最后在maven中引入javapackager这个打包方式,好像是jdk17之后才能使用。详情配置去看我的pom.xml。
本来到这我以为结束了,是知道打包还是一直失败,报错fxml无法被加载。这里重点提一下,建议在加载fxml的时候用try catch包裹住,一个小小的路径问题硬是卡了我半天时间。