Java 使用Maven项目中的依赖项进行构建?
我在NetBeans中有一个Maven项目,它具有各种依赖项,允许我绘制一些3D图表/图形(JOGL、Gluegen和JZY3D)。如果我从NetBeans运行项目,这些都可以很好地工作,但是当我将项目构建到JAR文件中时,我会得到以下结果Java 使用Maven项目中的依赖项进行构建?,java,maven,netbeans,deployment,Java,Maven,Netbeans,Deployment,我在NetBeans中有一个Maven项目,它具有各种依赖项,允许我绘制一些3D图表/图形(JOGL、Gluegen和JZY3D)。如果我从NetBeans运行项目,这些都可以很好地工作,但是当我将项目构建到JAR文件中时,我会得到以下结果 Exception in thread "Building 3D Scatter Plot" java.lang.UnsatisfiedLinkError: no gluegen-rt in java.library.path at java.lan
Exception in thread "Building 3D Scatter Plot" java.lang.UnsatisfiedLinkError: no gluegen-rt in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:442)
这是Maven/NetBeans没有使用所有正确的依赖项构建JAR的问题,还是我在这里遗漏了什么?对于本机库的依赖项,库必须位于
路径中,或者列在java.library.PATH
系统属性中。您可以将其作为参数传递给java进程,如下所示:java-Djava.library.path=/path/to/dir
我认为您在Netbeans之外执行操作时可能缺少这一部分。对于本机库的依赖关系,库必须位于路径中,或者列在java.library.PATH
系统属性中。您可以将其作为参数传递给java进程,如下所示:java-Djava.library.path=/path/to/dir
我认为在Netbeans之外执行操作时,您可能缺少这一部分。在我看来,它正在搜索一个dll(gluegen-rt.dll),它应该位于java库路径中
您可以添加dll依赖项(您需要在repo或Nexus中手动添加):
gluegen rt
gluegen rt
动态链接库
在我看来,它正在搜索一个dll(gluegen-rt.dll),它应该位于java库路径中
您可以添加dll依赖项(您需要在repo或Nexus中手动添加):
gluegen rt
gluegen rt
动态链接库
Update:因此我将gluegen-rt.jar及其本机版本(我假设它正在查找的jar文件)移动到与我的jar文件位于同一文件夹中的/lib,然后使用以下命令(仍然会得到相同的错误)java-Djava.library.path=/lib-jar application.jar在将gluegen-rt.so(或windows的dll)库放在应用程序jar旁边后,它不应该是-Djava.library.path=/lib
。尝试了一下,仍然没有结果:(您仍然收到相同的错误,即“java.lang.UnsatisfiedLinkError:no gluegen rt in java.library.path”在将.so/dll放在java.library.path
中之后?更新:因此我将gluegen-rt.jar及其本机版本(我假设它正在查找的jar文件)移动到与我的jar文件位于同一文件夹中的/lib,然后使用以下命令(仍然得到相同的错误)java-Djava.library.path=/lib-jar application.jar在将gluegen-rt.so(或windows的dll)库放在应用程序jar旁边后,它不应该是-Djava.library.path=/lib
。尝试了一下,仍然没有结果:(您仍然收到相同的错误,即“java.lang.UnsatisfiedLinkError:no gluegen rt in java.library.path”将.so/dll放入java.library.path
之后?
<dependency>
<groupId>gluegen-rt</groupId>
<artifactId>gluegen-rt</artifactId>
<type>dll</type>
</dependency>