В Eclipse мой экспортированный исполняемый файл jar ничего не делает! (LWJGL) - PullRequest
4 голосов
/ 07 марта 2012

Java новичок здесь.

Я создал небольшое Java-приложение в Eclipse (для Windows), используя библиотеки LWJGL и Slick. Затем, когда я экспортирую в виде исполняемого файла .jar и запускаю полученный .jar, он ничего не делает. Нет ошибок, нет ничего - просто, кажется, не работает. Я следую этому уроку: http://www.cs.bsu.edu/homepages/pvg/misc/slick_eclipse_tutorial.php

Вот как выглядит мой файл manifest.mf:

Manifest-Version: 1.0
Main-Class: SimpleTest
Class-Path: lib/lwjgl.jar lib/slick.jar

Приложения, которые не используют экспорт LWJGL просто отлично. Что я делаю не так?

Я попытался использовать JarSplice, но это не сработало, хотя, возможно, я его неправильно использовал. Есть указатели?

Ответы [ 3 ]

5 голосов
/ 07 марта 2012

Лучше всего, если вы пропустили ссылку на Main-class в файле manifest.

Посмотрите на , это показывает, как правильно настроить manifest -файл.

Веселись!

EDIT:

Manifest-Version: 1.0 
Main-Class: SimpleTest 
Class-Path: lib/lwjgl.jar lib/slick.jar  
<-- new line without any content -->

РЕДАКТИРОВАТЬ 2:

ОК, я смог воспроизвести это поведение. Когда я попытался запустить экспортированный jar через консоль, я получил следующее исключение:

Exception in thread "main" java.lang.reflect.InvocationTargetException
   ...
Caused by: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
   ... 
    ... 5 more

Проведя некоторые исследования, я обнаружил, что вряд ли возможно упаковать нативные библиотеки DLL в исполняемый файл.
Чтобы уточнить, я нашел три варианта:

  1. Просто обычно экспортируйте свой jar-файл как Runnable JAR в Eclipse и после этого поместите его в папку, содержащую нативные библиотеки DLL (проверил это, сработал для моей настройки в вашем уроке)
  2. При выполнении извлеките ваши dll во временную директорию, как указано здесь
  3. Или используйте проект One-Jar , который позволяет создавать исполняемые фляги с собственными библиотеками

Надеюсь, это решило вашу проблему. Ура!

3 голосов
/ 28 июля 2012

У меня похожие проблемы с затмением и Сликом, и вот что я нашел. (взято из LWJGL wiki )

Я продолжаю получать java.lang.UnsatisfiedLinkError: нет lwjgl в java.library.path

Это потому, что собственная часть не настроена правильно. Добавьте -Djava.library.path = path / to / dir в командную строку или в качестве опции виртуальной машины в вашей IDE, чтобы lwjgl смог найти папку, содержащую собственные файлы.

Короче говоря, в экспортированном банке отсутствуют нужные нативы

Теперь, при компиляции в пригодный для запуска jar, я предполагаю, что вам нужен стиль приложения с двойным щелчком мыши для запуска, так что это не совсем возможно.

вы можете установить java.library.path после запуска с помощью System.setProperty или поместить необходимые нативы в путь к библиотеке по умолчанию.

Сам я не нашел лучшего решения, но надеюсь, что это помогло

0 голосов
/ 19 апреля 2016

Попробуйте использовать Jar Splice http://ninjacave.com/jarsplice Все, что вам нужно сделать, это дать ему все ваши файлы .jar (основной и библиотеки) и все ваши DLL.Он может создать .jar, который работает.Он также может создавать исполняемый файл (.exe), а также эквивалентности для Linux и Mac.

...