我使用IntelliJ创建Java WorldWind应用程序的变体。当我在IntelliJ中构建JAR工件时,我可以在JAR的顶级目录中看到我的DLL和SO。但是,当我尝试执行它时,它抱怨它无法看到JAR内部的这些库(尝试了Windows和Linux,这就是我包含SO和DLL的原因)。
我需要做些什么才能让它看到这些库?
这是我第一次创建可执行JAR,对于模糊不清,我不太确定哪些信息很重要。请问我有什么必要的问题来更好地理解这个问题,我会回答他们。
编辑:
Catched FileNotFoundException: D:\code\Animator\animator\out\artifacts\Animator_jar\Animator-natives-windows-i586.jar (The system cannot find the file specified),
while addNativeJarLibsImpl(
classFromJavaJar class com.jogamp.common.os.Platform,
classJarURI jar:file:/D:/code/Animator/animator/out/artifacts/Animator_jar/Animator.jar!/com/jogamp/common/os/Platform.class,
nativeJarBaseName Animator-natives-windows-i586.jar):
[ file:/D:/code/Animator/animator/out/artifacts/Animator_jar/Animator.jar ->
file:/D:/code/Animator/animator/out/artifacts/Animator_jar/ ] +
Animator-natives-windows-i586.jar ->
slim: jar:file:/D:/code/Animator/animator/out/artifacts/Animator_jar/Animator-natives-windows-i586.jar!/
Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: D:\code\Animator\animator\out\artifacts\Animator_jar\gluegen-rt.dll
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.load0(Unknown Source)
at java.lang.System.load(Unknown Source)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:551)
at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:64)
at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:96)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:414)
at com.jogamp.common.os.DynamicLibraryBundle$GlueJNILibLoader.loadLibrary(DynamicLibraryBundle.java:388)
at com.jogamp.common.os.Platform$1.run(Platform.java:209)
at java.security.AccessController.doPrivileged(Native Method)
at com.jogamp.common.os.Platform.<clinit>(Platform.java:179)
at javax.media.opengl.GLProfile.<clinit>(GLProfile.java:82)
at au.gov.ga.worldwind.animator.application.AnimatorConfiguration.<clinit>(AnimatorConfiguration.java:46)
at au.gov.ga.worldwind.animator.application.Animator.<clinit>(Animator.java:205)
就JAR的结构而言,我不知道如何在7-Zip中展示JAR的截图:
答案 0 :(得分:0)
在图像中我们可以看到jar的名称是:Animator.jar,但是intelliJ正在搜索:Animator-natives-windows-i586.jar。您必须转到模块设置 - 工件并将OutputDirectory更改为:D:\ code \ Animator \ animator \ out \ artifacts \ Animator_jar 然后检查工件的名称以匹配路径和文件名。
我添加的图像就是一个例子。