Печально известный «java.lang.UnsatisfiedLinkError: нет lwjgl64 в java.library.path»

#java #lwjgl

#java #lwjgl

Вопрос:

Я вижу здесь несколько сообщений по этой теме, но никаких исправлений, которые я смог реализовать (я использую Android Studio в Windows для создания Java-приложения).

Следуя указаниям из вики LWJGL (http://wiki .lwjgl.org/wiki/Setting_Up_LWJGL_with_IntelliJ_IDEA.html ) — Я создал папку «библиотеки» в своем проекте и скопировал туда:

 lwjgl64.dll
  

В моей конфигурации запуска я попробовал это в настройках моей виртуальной машины:

  -Djava.library.path="C:Program FilesJavalwjgl-2.9.3nativewindowslwjgl64.dll"
  

Я также попытался добавить путь к библиотеке в свои переменные среды в Windows.

 C:Program FilesJavalwjgl-2.9.3nativewindowslwjgl64.dll
  

Вероятно, это легко исправить, но я нахожусь в тупике, пытаясь понять, что это такое. Указатели?

Комментарии:

1. LWJGL не предназначен только для рабочего стола Android

2. Извините за отсутствие ясности… AndroidStudio — моя среда разработки, но я компилирую Java-приложение (на ПК с Windows 64).

3. java.library.path должен указывать на каталог, содержащий файлы библиотеки . В настоящее время вы указываете на определенный файл библиотеки . Следуйте инструкциям точно так, как напечатано, и все должно быть в порядке.

4. Вот почему я разочарован, Иоахим — следование указаниям не работает. В соответствии с инструкциями: создайте папку ‘libs’ в вашем проекте и скопируйте . там есть dll. Выполнено. Задайте для параметров виртуальной машины значение: -Djava.library.path=библиотеки /. Выполнено. Попытка запустить программу: java.lang. UnsatisfiedLinkError: нет lwjgl64 в java.library.path

5. @n8skow: это не то, что вы описываете в своем сообщении. Вы установили java.library.path совсем другое значение. Если вы укажете относительный путь, то ваш рабочий каталог должен быть тем, который указан ниже libs/ (я думаю, это значение по умолчанию, но если вы его изменили, это может быть проблемой).

Ответ №1:

Я почти уверен, что android studio запускает ваше приложение либо через эмулятор, либо на вашем телефоне через USB-отладку. Он не предназначен для создания настольных приложений, даже если вы используете IDE в Windows.

Переключитесь на Intelij, Eclipse или Netbeans, поскольку они намного легче и быстрее по сравнению с Android studio

После того, как у вас есть, есть два способа решить вашу ошибку неудовлетворенной ссылки

1) С помощью кода

чуть выше вашего основного метода в статическом блоке установите конкретное свойство lwjgl, указывающее на вашу ПАПКУ lib

 static
{   
 File PATH=new File("C:\Program Files\Java\lwjgl\2.9.3\native\windows"); //I assume you have it here

 System.setProperty("org.lwjgl.librarypath",PATH.getAbsolutePath()); //This is the property not the regular Djava.library.path
}

public static void main(String[] args)
{
 //Your app
}
  

2) Вручную

Просто скопируйте все файлы dll в папку вашего проекта Или, если вы создали файл jar из своего проекта, обязательно вставьте файлы dll в каталог, содержащий ваш файл jar, или упакуйте все файлы dll в свой jar с помощью JarSplice посмотрите видеоурок здесь

Комментарии:

1. Обратите внимание, что Android Studio — это «просто» IntelliJ IDEA с набором предварительно настроенных плагинов. AFAIK вы можете использовать его как полнофункциональный эквивалент IDEA CE (при условии, что вы установите все необходимые плагины).

2. Верно, но он занимает много памяти и поставляется со встроенным множеством неиспользуемых плагинов по сравнению с eclipse amp; netbeans или IntelliJ сам по себе, что является отраслевым стандартом

3. Я выбрал Android Studio, чтобы я мог играть с Java — и переходить к разработке Android. Это немного ресурсоемкий, но у меня действительно не было проблем с производительностью.