MyMonsterCat / RapidOcr-Java

🔥🔥🔥Java代码实现调用RapidOCR(基于PaddleOCR),适配Mac、Win、Linux,支持最新PP-OCRv4
Apache License 2.0
197 stars 28 forks source link

linux环境执行报错 #19

Closed hongwazi closed 6 months ago

hongwazi commented 7 months ago

1

FlyInWind1 commented 7 months ago

打包是在 windows 上打包的吧,然后在 linux 上运行。

FlyInWind1 commented 7 months ago

目前在windows上打包的话,只会带上windows的dll,没有linux的so。 建议手动在 pom.xml 加一个依赖 rapidocr-onnx-linux-x86_64

hongwazi commented 7 months ago

目前在windows上打包的话,只会带上windows的dll,没有linux的so。 建议手动在 pom.xml 加一个依赖 rapidocr-onnx-linux-x86_64

我把服务器的jar解压看了下,是有so的,我尝试手动新增依赖试试。

hongwazi commented 7 months ago

目前在windows上打包的话,只会带上windows的dll,没有linux的so。 建议手动在 pom.xml 加一个依赖 rapidocr-onnx-linux-x86_64

我把服务器的jar解压看了下,是有so的,我尝试手动新增依赖试试。

试了下,不太行。。。。so文件是存在的。

FlyInWind1 commented 7 months ago

你是在 console 里找日志的而,还是 sl4j 的日志文件里面。 我刚刚在 RapidOcr-Java 的源码里面发现了 e.printStackTrace() 。。。 建议在 console 的日志里面看看,还有没有其他报错。

FlyInWind1 commented 7 months ago

如果还是不行的话。建议写一个demo代码,还有jar包,可以复现这个问题的

hongwazi commented 7 months ago

如果还是不行的话。建议写一个demo代码,还有jar包,可以复现这个问题的

今天在阿里云用docker,跑也是一样的错误,不用debug有加载不到so这个错误。 [DEBUG] - 当前库加载器: OnnxLinuxX8664LibraryLoader OpenJDK 64-Bit Server VM warning: You have loaded library /tmp/ocrJava/onnx/libRapidOcr.so which might have disabled stack guard. The VM will try to fix the stack guard now. It's highly recommended that you fix the library with 'execstack -c ', or link it with '-z noexecstack'. [DEBUG] - Failed to complete request: org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: /tmp/ocrJava/onnx/libRapidOcr.so: Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /tmp/ocrJava/onnx/libRapidOcr.so) [ERROR] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: /tmp/ocrJava/onnx/libRapidOcr.so: Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /tmp/ocrJava/onnx/libRapidOcr.so)] with root cause java.lang.UnsatisfiedLinkError: /tmp/ocrJava/onnx/libRapidOcr.so: Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /tmp/ocrJava/onnx/libRapidOcr.so

[DEBUG] - 当前模型加载器: OnnxModelsLoader [DEBUG] - 将文件models/ch_PP-OCRv3_det_infer.onnx复制到/onnx,加载此文件:false,JVM退出时删除此文件:false [DEBUG] - 将文件models/ch_ppocr_mobile_v2.0_cls_infer.onnx复制到/onnx,加载此文件:false,JVM退出时删除此文件:false [DEBUG] - 将文件models/ch_PP-OCRv3_rec_infer.onnx复制到/onnx,加载此文件:false,JVM退出时删除此文件:false [DEBUG] - 将文件models/ppocr_keys_v1.txt复制到/onnx,加载此文件:false,JVM退出时删除此文件:false [DEBUG] - Failed to complete request: org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: com.benjaminwan.ocrlibrary.OcrEngine.initLogger(ZZZ)V [ERROR] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: com.benjaminwan.ocrlibrary.OcrEngine.initLogger(ZZZ)V] with root cause

MyMonsterCat commented 6 months ago

目前在windows上打包的话,只会带上windows的dll,没有linux的so。 建议手动在 pom.xml 加一个依赖 rapidocr-onnx-linux-x86_64

关于Linux上运行请参考:如何打包 jar 在Linux系统上运行

MyMonsterCat commented 6 months ago

如果还是不行的话。建议写一个demo代码,还有jar包,可以复现这个问题的

今天在阿里云用docker,跑也是一样的错误,不用debug有加载不到so这个错误。

[DEBUG] - 当前库加载器: OnnxLinuxX8664LibraryLoader OpenJDK 64-Bit Server VM warning: You have loaded library /tmp/ocrJava/onnx/libRapidOcr.so which might have disabled stack guard. The VM will try to fix the stack guard now. It's highly recommended that you fix the library with 'execstack -c ', or link it with '-z noexecstack'. [DEBUG] - Failed to complete request: org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: /tmp/ocrJava/onnx/libRapidOcr.so: Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /tmp/ocrJava/onnx/libRapidOcr.so) [ERROR] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: /tmp/ocrJava/onnx/libRapidOcr.so: Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /tmp/ocrJava/onnx/libRapidOcr.so)] with root cause java.lang.UnsatisfiedLinkError: /tmp/ocrJava/onnx/libRapidOcr.so: Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /tmp/ocrJava/onnx/libRapidOcr.so [DEBUG] - 当前模型加载器: OnnxModelsLoader [DEBUG] - 将文件models/ch_PP-OCRv3_det_infer.onnx复制到/onnx,加载此文件:false,JVM退出时删除此文件:false [DEBUG] - 将文件models/ch_ppocr_mobile_v2.0_cls_infer.onnx复制到/onnx,加载此文件:false,JVM退出时删除此文件:false [DEBUG] - 将文件models/ch_PP-OCRv3_rec_infer.onnx复制到/onnx,加载此文件:false,JVM退出时删除此文件:false [DEBUG] - 将文件models/ppocr_keys_v1.txt复制到/onnx,加载此文件:false,JVM退出时删除此文件:false [DEBUG] - Failed to complete request: org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: com.benjaminwan.ocrlibrary.OcrEngine.initLogger(ZZZ)V [ERROR] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: com.benjaminwan.ocrlibrary.OcrEngine.initLogger(ZZZ)V] with root cause

请问这个问题解决了吗?能否提供一个demo。

FlyInWind1 commented 6 months ago

没呢,目前发现的一个问题 rapidOcr 不能在 alpine 上运行,alpine 是一个微型的 linux,里面缺了一些so文件,正好就有 rapidOcr 需要的

MyMonsterCat commented 6 months ago

没呢,目前发现的一个问题 rapidOcr 不能在 alpine 上运行,alpine 是一个微型的 linux,里面缺了一些so文件,正好就有 rapidOcr 需要的

可以看下这个如何在CentOS7或其他低版本Linux系统上运行。不过微型的 linux估计很难编译,内存不大,可以试试使用SCL安装和配置,就不用自己编译了。