gpt4 book ai didi

java - sikuli classpath UnsatisfiedLinkError 没有 opencv_core with macosx intellij Junit

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:09:16 28 4
gpt4 key购买 nike

我以前做过搜索,试图找到这个问题的答案,但到目前为止我的尝试都失败了。我认为错误很简单,只是没有加载类。

我正在运行带有 intellij 的 MacOSX 10。我将它与 Junit Spring 和 Maven & Junit 一起使用。

我按照找到的 maven 依赖项 mvnrepository.com - sikuli-api 1.2.0所以我在想,如果将依赖项添加到 pom,那么所有文件都应该在我的类路径中吗?所以我不明白为什么它不起作用?

previous answer看起来很接近我的 - 但它适用于 mac 上的 windows im。但是,通过使用 maven,我不需要将它添加到类路径中??还是我错过了什么。这similar unanswered问题也看起来像我一样使用 mac

已添加 POM 依赖项

    <dependency>
<groupId>org.sikuli</groupId>
<artifactId>sikuli-api</artifactId>
<version>1.2.0</version>
</dependency>

<dependency>
<groupId>org.sikuli</groupId>
<artifactId>sikuli-core</artifactId>
<version>1.2.2</version>
</dependency>

<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>14.0.1</version>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacpp</artifactId>
<version>0.9</version>
</dependency>
<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
<artifactId>opencv</artifactId>
<version>2.4.9-0.9</version>
<classifier>macosx-x86_64</classifier>
</dependency>
<dependency>
<groupId>org.piccolo2d</groupId>
<artifactId>piccolo2d-core</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.piccolo2d</groupId>
<artifactId>piccolo2d-extras</artifactId>
<version>1.3.1</version>
</dependency>

我的测试

static {
System.setProperty("platform.dependency", "macosx-x86_64");
//System.setProperty("platform.dependency", "1"); // tried this also
}

@Test
public void testOne() throws Exception {

File file = new File(getClass().getClassLoader().getResource("camera_icon.png").getFile());

browse(new URL("http://code.google.com"));

ScreenRegion s = new DesktopScreenRegion();
Target target = new ColorImageTarget(file);

// ** Fails here **
ScreenRegion r = s.find(target);
....

错误 - 类加载器

我跟踪了调试器,它在 open_core 的类加载器上失败了——见截图

enter image description here

更新

我根据下面的 Samuel 回答添加了 POM 分类器。我也试过setting the system property .仍然得到同样的错误。

还注意到以下错误 - 我已尝试尽可能减少它。

Caused by: java.lang.UnsatisfiedLinkError: /private/var/folders/qp/.../libjniopencv_core.dylib: dlopen(/private/var/....../libjniopencv_core.dylib, 1): Library not loaded: @rpath/libopencv_core.2.4.dylib
Referenced from: /private/var/.......libjniopencv_core.dylib
Reason: no suitable image found. Did find:
/private/va.....77/./libopencv_core.2.4.dylib: malformed mach-o image: load command #12 length (0) too small in /private/var/fo......./libopencv_core.2.4.dylib t java.lang.ClassLoader$NativeLibrary.load(Native Method)

最佳答案

答案基本在README.md file中, 但我会在这里拼写出来。您需要将 platform.dependency 系统属性设置为所需的平台,例如 macosx-x86_64,或者设置为 true platform.dependencies 一,获取所有平台的依赖。我不确定我们应该如何使用 JUnit Spring 进行设置(它应该在文档中),但即使这样也不适用于 SBT,因此为了解决这些情况,我们可以添加特定于平台的依赖项手动。由于您在 Mac OS X 上运行并且对使用 OpenCV 2.4.9 感兴趣,因此将此附加依赖项添加到您的 pom.xml 文件应该可行:

<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
<artifactId>opencv</artifactId>
<version>2.4.9-0.9</version>
<classifier>macosx-x86_64</classifier>
</dependency>

关于java - sikuli classpath UnsatisfiedLinkError 没有 opencv_core with macosx intellij Junit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31187168/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com