【问题标题】:OpenCV java project runs in Eclipse but not in Command lineOpenCV java 项目在 Eclipse 中运行,但不在命令行中
【发布时间】:2019-07-20 23:05:54
【问题描述】:

我下载了 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 文件,以便它可以从命令行运行?

提前致谢

【问题讨论】:

  • 您没有向运行时类路径添加任何内容。了解 Maven 或 Gradle,并使用其中之一为您管理依赖项,包括启动。

标签: java opencv core noclassdeffounderror


【解决方案1】:

当你在 Eclipse 中运行时,IDE 会自动处理依赖关系,但当你从命令行运行时,则需要你自己处理。

按照以下命令执行此操作:

  1. 编译时:

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

  1. 运行时:

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

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

【讨论】:

    猜你喜欢
    • 2015-12-21
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 2023-03-11
    • 2011-06-18
    • 1970-01-01
    相关资源
    最近更新 更多