【问题标题】:no native library found for maven plugin project没有为 maven 插件项目找到本机库
【发布时间】:2023-03-14 22:19:01
【问题描述】:

我想将跳跃运动应用程序集成到 Weasis Dicom Viewer 中。

项目:

Weasis-maven-plugin -> 我的飞跃实现在哪里

Weasis-framework -> dicom 查看器

Weasis-launcher -> 这是我启动 Dicom 查看器的地方。

我已经做了什么:

  • 用 eclipse 安装 m2e 并将 LeapJava.jar 添加到插件项目并设置原生库的位置
  • 将 LeapJava.jar 安装到 .m2/repository 文件夹中,以便 mvn install on my maven plugin build 成功
  • 添加到maven-plugin的pom.xml中
  • 更新了 maven 项目

什么不起作用:

  • 当我启动应用程序时,java.library.path 中没有 LeapJava

我看到其他一些线程说我需要手动将 -Djava.library.path 添加到 VM 参数。但是,当我将它添加到 Eclipse 中的启动器运行配置时,找不到的库仍然存在。我应该在某处添加这个吗?非常感谢任何帮助。

这是我用于 weasis-plugin 的 pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
    <artifactId>weasis-parent</artifactId>
    <groupId>org.weasis</groupId>
    <version>2.0.0-SNAPSHOT</version>
    <relativePath>../../weasis-parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>LeapPlugin</groupId>
<artifactId>UBC</artifactId>
<packaging>bundle</packaging>
<name>Tool panel sample [${project.artifactId}]</name>
<properties>
    <bundle.symbolicName>${project.artifactId}</bundle.symbolicName>
</properties>
<version>0.0.1-SNAPSHOT</version>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-scr-plugin</artifactId>

        </plugin>
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <configuration>
                <instructions>
                    <Service-Component>OSGI-INF/*.xml</Service-Component>
                </instructions>
            </configuration>
        </plugin>
    </plugins>
</build>
    <dependencies>
    <dependency>
        <groupId>org.weasis.core</groupId>
        <artifactId>weasis-core-api</artifactId>
        <version>${project.parent.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.weasis.core</groupId>
        <artifactId>weasis-core-ui</artifactId>
        <version>${project.parent.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.weasis.dicom</groupId>
        <artifactId>weasis-dicom-viewer2d</artifactId>
        <version>${project.parent.version}</version>
        <scope>provided</scope>
    </dependency>        
    <dependency>
        <groupId>com.leapmotion.leap</groupId>
        <artifactId>leapMotion</artifactId>
        <version>1.0.0</version>
        <scope>system</scope>
        <systemPath>${basedir}/sdk/LeapJava.jar</systemPath>
            </dependency>
</dependencies>

当我添加“systemPath”时,我仍然可以正确安装 mvn,但是当我现在运行启动器项目时,我得到 org.osgi.framework.BundleException: "Unresolved constraint in bundle"

更新 1:

所以现在这就是我的 pom.xml 的样子

<groupId>com.leapmotion.leap</groupId>
<artifactId>leapMotion</artifactId>
<version>1.0.0</version>

Exception in thread "Thread-5" java.lang.UnsatisfiedLinkError: no leapMotion-1.0.0 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1764)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1044)
at weasisTool.SampleTool$1.run(SampleTool.java:98)

【问题讨论】:

  • 你运行了 maven->install 吗?
  • 是的,我先更新项目,然后 mvn install 导致构建成功但是,当我启动程序时它说找不到库。
  • 当您从命令行构建并运行该 jar 时会发生什么? (使用 Maven 在 Eclipse 之外构建)
  • 与 Eclipse 的结果相同。在项目上安装 MVN 使我构建成功,但是当我运行启动器项目时,我得到了同样的错误。我确实注意到 weasis-plugin 项目下的 Maven 依赖项有我的 jumpMotion-1.0.0.jar 但无论我设置多少次奇怪的位置,本机路径都是空的......
  • 听起来你在构建 jar 时缺少依赖项。我建议解开罐子的拉链,看看里面有什么以及如何。当你打开它时,很有可能它会很明显。我不知道你的全部依赖关系,所以我不能说更多。

标签: java eclipse maven m2eclipse m2e


【解决方案1】:

不确定这是否是实际的解决方案。

但我补充说:

  1. 我的 pom.xml 中的 nativedependency-plugin
  2. 确保在插件项目文件夹上做 mvn 包(这会在 target/ 文件夹下生成一些文件
  3. 在 VM 参数中添加了 -Djava.library.path,它可以编译并运行!

【讨论】:

    猜你喜欢
    • 2018-10-06
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 2014-07-10
    • 2013-12-03
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多