2015-06-02 4 views
0

Я использую IntelliJ для создания варианта приложения Java WorldWind. Когда я создаю артефакт JAR в IntelliJ, я могу видеть свои DLL и SO в каталоге верхнего уровня JAR. Однако, когда я пытаюсь выполнить его, он жалуется, что не может видеть эти библиотеки, которые находятся внутри JAR (попробовал как Windows, так и Linux, поэтому я включил SO и DLL).Правильно создайте Java JAR

Что мне нужно сделать, чтобы просмотреть эти библиотеки?

Это мой первый раз, когда вы создаете исполняемый JAR, так извините за неопределенность, я не совсем уверен, какая информация важна. Пожалуйста, задайте мне любые вопросы, необходимые для лучшего понимания этой проблемы, и я отвечу на них.


Edit:

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 Contents

+0

Привет, Тодд, Можете ли вы показать сообщение об ошибке и структуры проекта и банку? – Elvermg

+0

Я считаю, что я отредактировал свое сообщение с запрошенной информацией. – Todd

ответ

0

На изображении мы можем видеть, что имя флага: Animator.jar, но intelliJ ищет fo r: Аниматор-туземцы-windows-i586.jar. Вы должны перейти в Настройки модуля - Артефакты и изменить OutputDirectory на: D: \ code \ Animator \ animator \ out \ artifacts \ Animator_jar Затем проверьте имя артефакта, чтобы он соответствовал пути и имени файла. enter image description here

Изображение, добавленное мной, является примером.

Смежные вопросы