【发布时间】: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