Как сделать исполняемый файл из моей игры LIBGDX

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

Как мне превратить мою игру в исполняемый файл, чтобы ее можно было запустить (на Windows, а не на Android). Мне кажется, что я не связываю ее с библиотеками или чем-то еще... Не уверен. Спасибо!

Изменить: я должен добавить, что получаю сообщение об ошибке

JAR export finished with warnings. See details for additional information. 
duplicate entry: com/badlogic/gdx/utils/arial-15.fnt 
duplicate entry: com/badlogic/gdx/utils/arial-15.fnt 
duplicate entry: com/badlogic/gdx/utils/arial-15.png 
duplicate entry: com/badlogic/gdx/utils/arial-15.png 
Jar export finished with problems. 
See details for additional information. 

person Brian Diehr    schedule 27.01.2012    source источник
comment
Чтобы было ясно, вы хотите создать исполняемый файл, чтобы другие люди могли запускать его в Windows? Или на своих Android-устройствах? (Или на Mac?)   -  person P.T.    schedule 30.01.2012
comment
Я понял, как экспортировать APK и заставить его работать на устройствах Android, и он отлично работает. Но вы правы, я пытаюсь заставить его работать на окнах. Я до сих пор не понял.   -  person Brian Diehr    schedule 30.01.2012
comment
FWIW, я тоже получаю кучу предупреждений о «дублированной записи». Но они для разных классов. Вы должны проверить полученный файл .jar (например, с помощью winzip или 7zip) и убедиться, что он содержит ваши файлы классов и что файл META-INF\MANIFEST.MF ссылается на правильный основной класс. На верхнем уровне .jar также должно быть много библиотек (например, gdx.dll и libgdx.so и т. д.).   -  person P.T.    schedule 31.01.2012


Ответы (4)


Ваша проблема в том, что когда вы используете экспорт eclipse в качестве исполняемого файла jar, он не включает активы (графические, звуки...), которые вы использовали в своем проекте gdx. Что вы можете сделать вручную, так это либо скопировать папку ресурсов прямо рядом с сгенерированным файлом jar, либо включить папку ресурсов в ваш файл jar с помощью вашего любимого инструмента управления zip.

Другой способ - использовать тот же мастер экспорта eclipse и установить флажок «Сохранить как сценарий ANT», а затем отредактировать сгенерированный файл ant, чтобы включить все файлы и папки, необходимые вашему приложению.

Надеюсь это поможет

person Nacef    schedule 06.04.2012
comment
Это было решением. Работаю с тех пор, как сделал, как здесь сказано. Спасибо! - person Brian Diehr; 14.07.2012

Это старый вопрос, но если вы используете новую версию LibGDX и Gradle, вы можете использовать командную строку для создания исполняемого файла.

Есть несколько команд, но они для упаковки:

Рабочий стол

gradlew desktop:dist

Android (без подписи)

gradlew android:assembleRelease

iOS

gradlew ios:createIPA

Интернет

gradlew html:dist

Подробнее читайте на https://github.com/libgdx/libgdx/wiki/Gradle-on-the-Commandline

person Kyrremann    schedule 02.09.2014
comment
Для настольного дистрибутива gradlew desktop:dist создает .jar, но не работает, если его не поместить в папку с ресурсами. Интересно, это проблема с обновлением Gradle? - person ; 01.02.2017

Я предполагаю, что ваше приложение настроено так, как предлагает вики-страница libgdx (с «основной проект» и отдельные проекты «настольный компьютер» и «андроид», которые совместно используют исходные коды из «основного» проекта).

Поскольку ваше приложение написано на Java, для его запуска на рабочем столе требуется JVM. Вы должны решить, хотите ли вы упаковать это или полагаться на JVM, уже установленную пользователем. Я считаю, что упаковка JVM с файлами классов Java очень сложна и поднимает множество других проблем (и становится очень специфичной для платформы). Итак, я считаю, что большинство игр на основе libgdx распространяются в виде исполняемого файла Jar, а это означает, что у пользователя уже должна быть установлена ​​Java. (Это работает для Minecraft, так что, вероятно, этого достаточно и для вас. :)

Eclipse делает это очень просто: File -> Export ... -> Java -> Executable Jar File. Могут потребоваться дополнительные шаги для включения ресурсов, таких как изображения и звуки вашего приложения, в этот файл .jar. (Моя игра в настоящее время «бесплатна», поэтому у меня нет опыта работы с этой частью.)

Вы также можете подумать об обходе исполняемого файла на рабочем столе, упаковать свою игру в виде апплета и запустить ее в веб-браузере, чтобы людям, которым вы хотите ее показать, требуется очень небольшая «установка». Вот пошаговое руководство по созданию апплета. из игры на основе libgdx. (На самом деле я еще не пробовал это сам, но у меня есть игра на основе libgdx, для которой я планирую это сделать.)

person P.T.    schedule 27.01.2012
comment
Большое спасибо за ваш ответ! Когда я попробую то, что вы предложили, откроется пустое белое окно. Я иду, Файл ›› Экспорт › › Запускаемый файл JAR, и я попытался извлечь необходимые библиотеки в сгенерированный вариант JAR и упаковать необходимые библиотеки в сгенерированный JAR с тем же результатом (не работает). Что теперь? - person Brian Diehr; 28.01.2012
comment
Кроме того, когда я пытаюсь добавить следующий com.badlogic.gdx.backends.lwjgl.LwjglApplication, Eclipse не видит, что он существует. Возможно ли, что у меня просто не работает LibGDX или что-то длинное в этих строках? У меня игра работает нормально... - person Brian Diehr; 28.01.2012
comment
Вы выбрали место экспорта? Это тупой способ Eclipse запросить имя файла .jar, который он должен создать. Я только что создал .jar из своего приложения, и проблем не возникло... хммм... Я использую бэкэнд jogl, а не lwjgl. Но я сомневаюсь, что это должно иметь большое значение. - person P.T.; 28.01.2012
comment
@PT: Вы заметили, что это вопрос об Android, а не только о Java? Это не так просто, как создание апплета Java или экспорт исполняемого файла jar. - person Ken White; 28.01.2012
comment
@KenWhite А, хорошая мысль ... я этого не видел. Документ libgdx довольно хорошо описывает сборку версии для Android, поэтому я предположил, что это настольная версия, о которой он спрашивал. Я внесу ясность. - person P.T.; 30.01.2012

Если вы используете Android Studio, вы можете создать пользовательскую конфигурацию для распространения из программы.

В раскрывающемся списке «Выполнить» выберите «Изменить конфигурации».

Нажмите «+». Выберите Грейдл.

В правой половине этого экрана дайте вашей конфигурации имя.

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

Задачи: введите "desktop:dist"

Применять.

Закройте редактор конфигурации и выберите новую конфигурацию из раскрывающегося списка. Нажмите «Выполнить», и он должен построить ваш проект.

Ваш новый файл Jar должен находиться в (ProjectName)/desktop/build/libs.

person Thad.Nutting    schedule 14.02.2016
comment
Большое спасибо за (ProjectName)/desktop/build/libs. Обычно он создает небольшой файл, но как только я скомпилировал его с помощью cmd, он сработал! - person Soley; 29.04.2016