2012-01-27 5 views
9

Nigdy wcześniej nie robiłem programu do pliku wykonywalnego i od pewnego czasu zastanawiam się, jak to zrobić. Kiedy próbuję umieścić go w słoiku wszystko działa dobrze, ale kiedy próbuję go uruchomić, nic się nie dzieje.Jak zrobić plik wykonywalny z mojej gry LIBGDX

Jak zrobić moją grę w pliku wykonywalnym, aby można było ją uruchomić (w systemie Windows, nie w systemie Android)? Czuję, że nie łączę jej z bibliotekami lub czymś ... Nie jestem pewien. Dzięki!

Edit: Dodam pojawia się błąd

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. 
+0

Żeby było jasne szukasz zbudować wykonywalny dla innych ludzi, aby uruchomić w systemie Windows? Lub na urządzeniach z Androidem? (Lub na Macu?) –

+0

Wymyśliłem, jak wyeksportować plik APK i uruchomić go na urządzeniach z Androidem i działa świetnie. Ale jesteś w błędzie, próbuję zmusić go do pracy w systemie Windows. Nadal nie zrozumiałem tego. –

+0

FWIW, dostaję też kilka ostrzeżeń o "duplikacie wejścia". Są jednak dla różnych klas. Należy sprawdzić wynikowy plik .jar (np. Z winzip lub 7zip) i zobaczyć, że zawiera on pliki klas oraz, że plik META-INF \ MANIFEST.MF odwołuje się do właściwej "klasy głównej". Najwyższy poziom .jar powinien również zawierać wiele bibliotek (np. Gdx.dll i libgdx.so itd.). –

Odpowiedz

7

Twój problem polega na tym, że kiedy używasz eksportu Eclipse jako pliku plików wykonywalnych, robi to nie uwzględniać zasobów (graficznych, dźwięków ...) używanych w projekcie gdx. To, co możesz zrobić ręcznie, to albo skopiuj folder zasobów bezpośrednio obok wygenerowanego pliku jar, albo umieść folder zasobów w pliku jar za pomocą swojego ulubionego narzędzia do zarządzania plikami zip.

Innym sposobem byłoby użycie tego samego kreatora eksportu Eclipse i zaznaczenie opcji "Zapisz jako skrypt ANT", a następnie zmodyfikuj wygenerowany plik mrówki, aby zawierał wszystkie pliki i foldery wymagane przez aplikację.

Nadzieja to pomaga

+0

dzięki temu rozwiązaniu problem mi – Yayo28

+0

To było rozwiązanie. Pracowałem od kiedy zrobiłem to, co powiedzieliście tutaj. Dzięki! –

5

Jestem zakładając aplikacja jest setup as the libgdx wiki page suggests (z „głównego projektu” i odrębnego „pulpicie” i „Android” projektów, że udział źródeł z projektu "głównego").

Ponieważ twoja aplikacja jest napisana w Javie, wymaga JVM do uruchomienia na pulpicie. Musisz zdecydować, czy chcesz to spakować, czy polegać na JVM już instalowanej przez użytkownika. Wierzę, że pakowanie JVM z plikami klasy Java jest bardzo skomplikowane i powoduje wiele innych problemów (i staje się bardzo specyficzne dla platformy). Wierzę, że większość gier opartych na libgdx jest rozprowadzanych jako plik wykonywalny Jar, co oznacza, że ​​użytkownik musi już mieć Javę. (Działa dla Minecrafta, więc prawdopodobnie jest dla ciebie wystarczająco dobry :)

Eclipse sprawia, że ​​to naprawdę proste: File -> Export ... -> Java -> Executable Jar File. W tym pliku .jar mogą być wymagane dodatkowe kroki, aby włączyć zasoby, takie jak obrazy i dźwięki aplikacji. (Moja gra jest obecnie "wolna od aktywów", więc nie mam żadnego doświadczenia z tą częścią).

Możesz również rozważyć przejście do pliku wykonywalnego pulpitu i zapakowanie gry jako apletu i uruchomienie go w przeglądarka internetowa, więc jest bardzo mało "instalacji" wymaganych przez ludzi, którym chcesz ją pokazać. Oto walkthrough for making an applet from a libgdx-based game. (Sam nie próbowałem tego jeszcze, ale mam grę opartą na libgdx, na którą mam zamiar to zrobić.)

+0

Dziękuję bardzo za odpowiedź! Kiedy spróbuję tego, co zasugerowałeś, otworzy się puste białe okno. Idź, Plik >> Eksportuj >> Runnable plik JAR i wypróbowałem opcję "Wyodrębnij wymagane biblioteki do wygenerowanego pliku JAR" i "zapakuj wymagane biblioteki do wygenerowanego pliku JAR", oba z tym samym wynikiem (nie działa). Co teraz? –

+0

Ponadto, gdy próbuję dodać następującą aplikację: com.badlogic.gdx.backends.lwjgl.LwjglApplication Eclipse nie widzi, że istnieje. Czy to możliwe, że nie mam poprawnie działającego LibGDX lub czegoś długiego w tych liniach? Moja gra działa dobrze ... –

+0

Czy wybrałeś "miejsce docelowe eksportu"? Jest to tępy sposób zapytania Eclipse o nazwę pliku .jar, który powinien utworzyć. Właśnie stworzyłem .jar z mojej aplikacji i nie miałem problemu ... hmmm ... Używam backendu jogl, a nie lwjgl.Ale wątpię, żeby to miało duże znaczenie. –

6

To stara sprawa, ale jeśli używasz nowej wersji libgdx i Gradle można użyć wiersza polecenia do pliku wykonywalnego.

Istnieje kilka poleceń, ale są do pakowania:

pulpitu

gradlew desktop:dist 

Android (bez znaku)

gradlew android:assembleRelease 

iOS

gradlew ios:createIPA 

Web

gradlew html:dist 

Czytaj więcej na https://github.com/libgdx/libgdx/wiki/Gradle-on-the-Commandline

+0

Działa idealnie :-) –

+0

Do dystrybucji pulpitu "gradlew desktop: dist" tworzy plik .jar, ale nie działa, jeśli nie został zrzucony w folderze zasobów. Zastanawiam się, czy to jest problem z aktualizacją gradle? – FoxDonut

1

Jeśli używasz Android Studio, można utworzyć niestandardową konfigurację do dystrybucji z poziomu programu.

Z rozwijanej listy Uruchom wybierz opcję edytuj konfiguracje.

Kliknij "+". Wybierz Gradle.

Po prawej stronie tego ekranu podaj nazwę konfiguracji.

Projekt Gradle: Użyj przycisku przeglądania, aby wybrać aplikację na pulpicie. Będzie to wyglądać mniej więcej tak (nazwa projektu): Pulpit

Zadania: typu "desktop: dist"

Zastosuj.

Zamknij edytor konfiguracji i wybierz nową konfigurację z menu rozwijanego. Hit run i powinien zbudować twój projekt.

Twój nowy plik Jar powinien znajdować się w (Nazwa_projektu)/stojące/build/libs

+0

Dziękuję bardzo za ** (ProjectName)/desktop/build/libs **. Zwykle tworzy mały plik, ale po skompilowaniu go przez cmd działało! – Soley