Не могу запустить файл .jar (используя LWJGL) - PullRequest
3 голосов
/ 19 июля 2011

Добрый день!

Я создал файл jar (используя Netbeans) и не могу его запустить. Этот проект использует библиотеки lwjgl. Внутри моей IDE все работает хорошо.

Я использую следующую команду:

java -jar LWJGL_TimerExample.jar 

Ответ:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1758)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1045)
at org.lwjgl.Sys$1.run(Sys.java:73)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
at org.lwjgl.Sys.loadLibrary(Sys.java:82)
at org.lwjgl.Sys.<clinit>(Sys.java:99)
at org.lwjgl.opengl.Display.<clinit>(Display.java:130)
at Sourse.TimerExample.start(TimerExample.java:32)
at lwjgl_timerexample.Main.main(Main.java:21)

Другие проекты (без этой библиотеки) работают нормально. Как я могу решить эту ошибку?

Мой Манифест:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.1
Created-By: 1.6.0_26-b03-384-10M3425 (Apple Inc.)
Main-Class: lwjgl_timerexample.Main
Class-Path: lib/jinput.jar lib/lwjgl.jar lib/lwjgl_util.jar
X-COMMENT: Main-Class will be added automatically by build

Ответы [ 2 ]

4 голосов
/ 19 июля 2011

Это не сработает так, как вы пытаетесь это сделать в данный момент, поскольку вам нужно иметь собственные файлы рядом с jar и указывать на них с помощью параметра -Djava.library.path.

Если вам нужен только один jar-файл и вы хотите избежать хлопот командной строки и собственных файлов, используйте инструмент JarSplice . JarSplice прост в использовании и автоматически обрабатывает нативные файлы для вас.

1) Просто экспортируйте ваш проект (класс и ресурсы) в банку (проще сделать это через вашу IDE).

2) Затем запустите JarSplice, добавьте все необходимые jar-файлы на вкладку jars (jar вашего приложения, lwjgl.jar и любой другой используемый вами внешний jar-файл).

3) Затем на вкладке «Нативы» добавьте все файлы «нативов» (windows * .dll, linux * .so, mac * .dylib & * .jnilib).

4) На вкладке класса добавьте свой основной класс. Затем создайте свою банку.

Затем вы можете запустить этот jar, просто дважды щелкнув по нему (или, если хотите, через командную строку, используя 'java -jar yourapp.jar').

1 голос
/ 19 июля 2011

Из LWJGL wiki :

LWJGL состоит из двух частей, части Java и части собственного кода.Вы должны правильно настроить обе эти части, чтобы lwjgl работал.Чтобы настроить часть java, вы должны добавить lwjgl.jar в путь к классам (в качестве jar внешней библиотеки).Что касается нативной части (* .dll-файлов в Windows, * .so в Linux, * .jnilib для Mac и т. Д.), Вы должны указать java, в какой папке находятся нативные файлы, чтобы LWJGL мог их найти (используйте -Djava.library.path = путь / к / dir параметр vm, чтобы сделать это).

Кажется, что вы пропустили вторую часть - наличие собственной библиотеки на вашемjava.library.path.

...