繁体   English   中英

从终端使用OpenCV运行Java时发生JNI错误

[英]JNI error has occurred when running java with OpenCV from terminal

我正在尝试从终端编译用OpenCV 3.2.0编写的Java程序。 它最初是使用OpenCV作为用户库在Eclipse中编写的。 我用以下命令编译它:

javac -cp /opencv-3.2.0-java/build/bin/ *.java

它可以正常工作,-cp命令显示OpenCV jar的路径。 然后,我尝试使用此命令运行所有命令:

java -Djava.library.path="/opencv-3.2.0-java/build/lib" -cp jar/opencv-320.jar -classpath . Main 

它给了我这个错误:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/opencv/core/Mat
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
    at java.lang.Class.getMethod0(Class.java:3018)
    at java.lang.Class.getMethod(Class.java:1784)
    at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.opencv.core.Mat
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

我搜索了此问题的解决方案,得出的结论是它与本机库有关。 我使用-Djava参数从OpenCV链接到库文件的路径,但是它仍然无法正常工作。 我该如何解决?

编辑:

所有.java文件都位于桌面上的文件夹中。 这是包含主文件的地方。 例如:

home/pi/Desktop/MultiSensor_v2.0_Java/Main.java

OpenCV jar的路径:

/home/pi/Desktop/MultiSensor_v2.0_Java/opencv-3.2.0-java/build/bin/opencv-320.jar

OpenCV本机库的路径:

/home/pi/Desktop/MultiSensor_v2.0_Java/opencv-3.2.0-java/build/lib

-cp-classpath缩写。 因此,我怀疑当您同时使用两者时,第二个会覆盖第一个。

您可以在类路径上有多个条目,并以:分隔,如文档中所述: 设置类路径 (实际上,它看起来像是文档中的错字,应该是;作为分隔符。您可以尝试两种方式)

如果从目录home/pi/Desktop/MultiSensor_v2.0_Java/执行命令,则将执行以下操作:

java -Djava.library.path="opencv-3.2.0-java/build/lib" -cp .:opencv-3.2.0-java/build/bin/opencv-320.jarr Main 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM