В PlayN, как я могу обновить PlayN до версии 1.3.1, не получая ошибки lwjgl в java.library.path?

Обновлять

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

mvn install:install-file -DgroupId=com.mygame -DartifactId=mygame-core -Dversion=0.9-beta -Dpackaging=jar -Dfile=/home/klenwell/projects/mygame/playn/mygame/java/target/mygame-java-0.9-beta.jar

Затем в Eclipse я щелкнул правой кнопкой мыши папку java > Maven > Test. Это обновило все мои зависимости, включая lwjgl.

В противном случае см. ответ thomasbroad.

Оригинальный вопрос

Я проконсультировался со следующими авторитетами по этой теме и применил их различные рекомендации:

Часть проблемы заключается в том, что я не уверен, следует ли мне следовать инструкциям Maven или инструкциям Eclipse. Я пробовал оба и все, что между ними.

Я работаю в Ubuntu 12.04 64-бит на Eclipse, используя Maven. Все работало нормально, пока я не изменил версию PlayN в своем файле POM с 1.2 на 1.3.1 и не ввел зависимость lwjgl.

Что, как я ожидал, сработает:

1) Загрузите lwjgl (последняя версия 2.8.4) и протестируйте в соответствии с инструкциями lwjgl.org (все прошло успешно)

2) Обновите соответствующие файлы POM

2A) Добавьте lwjgl.version как свойство в mygame/pom.xml

  <properties>
    <playn.version>1.3.1</playn.version>
    <lwjgl.version>2.8.4</lwjgl.version>
  </properties>

2B) Добавьте lwjgl в качестве зависимости к mygame/mygame-java/pom.xml

  <dependency>
    <groupId>org.lwjgl.lwjgl</groupId>
    <artifactId>lwjgl</artifactId>
    <version>${lwjgl.version}</version>
  </dependency>

3) Щелкните правой кнопкой мыши проект mygame-java в Eclipse > «Запуск от имени» > «Конфигурации запуска» > «Аргументы» и добавьте -Djava.library.path=target/natives или -Djava.library.path=/absolute/path/to/my/lwjgl/lib к аргументам виртуальной машины. (Я пробовал оба варианта.)

Я вижу зависимости, перечисленные в папке моего проекта Java в Eclipse. И когда я следую руководству lwjgl.org для Eclipse, я вижу банку, указанную в папке проекта java. Но я все еще получаю ошибку.

Я надеюсь, что после двух часов головокружительного разочарования кто-нибудь либо укажет на мою роковую оплошность, либо даст четкие инструкции, которые помогут мне вернуться к работе. Спасибо.


person klenwell    schedule 27.06.2012    source источник
comment
В итоге я пока вернулся к PlayN v1.2. Дождитесь решения этой проблемы, прежде чем снова пытаться выполнить обновление до версии 1.3.   -  person klenwell    schedule 28.06.2012


Ответы (3)


Недавно я обновил свой проект с 1.2 до 1.3. Я только обновил свои pom.xml файлы, чтобы они ссылались на новую версию PlayN. Я не устанавливал вручную lwjgl и не добавлял зависимость lwjgl, поскольку она неявно подтягивается PlayN.

Вручную примените различия, найденные здесь в ваш проект, в ваши помпы.

Ключевой частью является часть java pom, которая сообщает Maven распаковывать собственные зависимости. Эта часть была фактически добавлена ​​в предыдущем diff, поэтому вы можете посмотреть там тоже.

Теперь ваша IDE, скорее всего, сообщит вам, что ваш проект не соответствует вашим pom, обновите свой проект, это должно установить зависимость lwjgl и настроить ее правильно.

person thomascompbio    schedule 29.06.2012
comment
Спасибо за ответ. Я применил изменения, как вы предложили. Вы можете увидеть набор изменений здесь: klenwell.com/is/Pastebin20120630. Затем я щелкнул Maven › Update Dependencies... в каталоге проекта Java в Eclipse. Я все еще получаю ошибку no lwjgl in java.library.path при попытке запустить приложение. - person klenwell; 01.07.2012
comment
Одна вещь, которая меня озадачивает, как Eclipse или Maven должны выяснить, где найти lwjgl в изменениях, на которые вы ссылаетесь, если вы не устанавливаете его вручную? Maven остается для меня полным вуду. - person klenwell; 01.07.2012
comment
Maven знает о зависимости lwjgl, потому что она указана в списке зависимостей playn. Как только вы указали версию PlayN 1.3.1, Maven должен начать извлекать lwjgl. - person thomascompbio; 05.07.2012
comment
Наконец-то понял. Оказывается, проблема заключалась в том, что у меня не был правильно настроен путь к моей основной банке игрового класса в Maven, и я предполагаю, что это блокировало обновления. Исправление, которое позволило ему правильно построиться. Спасибо за вашу помощь и терпение. - person klenwell; 05.07.2012

Я считаю, что вы должны добавить аргументы -Djava.library.path к аргументам виртуальной машины, а не к аргументам программы в вашей конфигурации времени выполнения.

Другой вариант использования maven- описан на странице начала работы. Стоит отметить, что встроенный Maven по умолчанию содержит ошибки для разработки, вам следует загрузить и использовать как минимум Maven 3.0.3, как указано на странице (но я думаю, вы уже это делаете).

person Gábor Bakos    schedule 04.07.2012
comment
Спасибо за предложения. У меня был указан путь к библиотеке в аргументах виртуальной машины (я просто отслеживал, как вы туда попадаете в Eclipse), и я на Maven 3.0.3. Но снова взглянув на страницу «Начало работы» и запустив maven через командную строку, я обнаружил основную проблему. - person klenwell; 05.07.2012

Я только что начал новый проект с PlayN 1.4 и снова столкнулся с этой проблемой в Eclipse. Решил следующим образом:

Щелкните правой кнопкой мыши mygame-java > Запуск от имени > Конфигурации запуска...

Затем добавил следующее в VM Arguments на вкладке Arguments:

-Djava.library.path=target/natives

Затем успешно запустилось как приложение.

В какой-то момент я также запустил упомянутую команду mvn install:install-file..., но я не уверен, было ли это необходимо или нет.

person klenwell    schedule 13.08.2012