我尝试用jna 在linux服务器上调用多个相互依赖的.so文件(如图)
然后我尝试用网上相似的办法去调用,有些找到了,但有一个怎么也找不到,请问该如何解决?
以下是我的Try.java的代码
import com.sun.jna.Native;
import com.sun.jna.Library;
import java.io.File;
public class Try{
public static interface PPOCR extends Library{
int main(int argc,String[] argv);
void checkParams();
String getResult(int argc,String[] argv);
}
public static interface Paddle extends Library{
}
public static void main(String[] args){
// System.load(new File("libonnxruntime.so.1.11.1").getAbsolutePath());
Paddle Inference2=(Paddle)Native.load(new File("libonnxruntime.so.1.11.1").getAbsolutePath(),Paddle.class);
Paddle Inference1=(Paddle)Native.load("libiomp5.so",Paddle.class);
Paddle Inference3=(Paddle)Native.load("libpaddle2onnx.so.0.9.9",PPOCR.class);
Paddle Inference=(Paddle)Native.loadLibrary("paddle_inference",Paddle.class);
PPOCR Instance=(PPOCR)Native.loadLibrary("ppocr",PPOCR.class);
System.out.println("start");
String arg="ppocr.exe system --det_model_dir=inference/ch_PP-OCRv3_det_infer --rec_model_dir=inference/ch_PP-OCRv3_rec_infer --image_dir=181.png";
String[] arg_all=arg.split(" ");
int str=Instance.main(arg_all.length,arg_all);
}
}
运行指令:
rm *.class
javac -cp ".:/home/ubuntu/ocr-test/*" Try.java
java -cp ".:/home/ubuntu/ocr-test/*" Try
结果: