OpenCV java 项目在 Eclipse 中运行,但不在命令行中运行



我下载了 OpenCV for Java 并将 jar 和库添加到 Eclipse 中的项目中,它工作正常。

但是当我尝试运行main(String args[])所在的.class文件时,它会抛出

> java MainActivity 1 5 8
Exception in thread "main" java.lang.NoClassDefFoundError: org/opencv/core/Core
    at HoleFiller.<init>(HoleFiller.java:29)
    at MainActivity._fixHole(MainActivity.java:100)
    at MainActivity._getImageNames(MainActivity.java:92)
    at MainActivity._authArgTypes(MainActivity.java:66)
    at MainActivity.main(MainActivity.java:17)
Caused by: java.lang.ClassNotFoundException: org.opencv.core.Core
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 5 more

它在此行上崩溃

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

有没有办法将.jar文件包含在项目中,以便它从命令行运行?

提前致谢

当您在 Eclipse 中运行时,IDE 将自动处理依赖关系,但是当您从 commadnd 行运行时,您需要自己处理它。

请按照以下步骤执行此操作:

  1. 编译时:

javac -cp path/to/opencv.jar YourProgram.java

  1. 运行时:

java -cp path/to/opencv.jar:. -Djava.library.path=path/to/opencv.dll 您的程序

您可以将.dll路径添加到系统路径,然后它将自动访问它。

最新更新