# Spieleprogramm als "richtiges" Spiel starten



## Java und so~ (11. Mai 2011)

Alsooo~
ich habe ein Spiel programmiert, was auch funkdiotniert und so, allerdings lässt es sich nur über Eclipse oder ähnlichem starten - normal halt. Hat auch ca. 8 Klassen und dem entsprechend viele src's. Wie kann ich jetzt, diese ganzen src's so zusammenlegen, dass ich quasie nur noch einen Desktop Icon habe, den ich dann anklicke und dann so das Spiel starte? 
Danke~


----------



## darekkay (11. Mai 2011)

http://www.java-forum.org/spezialthemen/18384-6-varianten-java-programme-starten-jar-bat-exe-cd.html

Das einfachste wäre, in Eclipse auf dein Projekt zu klicken und "Export" zu wählen (als jar oder runnable jar).


----------



## Java und so~ (12. Mai 2011)

darekkay hat gesagt.:


> http://www.java-forum.org/spezialthemen/18384-6-varianten-java-programme-starten-jar-bat-exe-cd.html
> 
> Das einfachste wäre, in Eclipse auf dein Projekt zu klicken und "Export" zu wählen (als jar oder runnable jar).



Dann wird es aber nicht so abgespeichter, dass ich quasie nur einen Icon habe, der mir das Spiel started...
Also like WoW, Warhammer etc., die SPiele bestehen ja auch aus mehrerren Src's werden aber nur über ein Zeichen gestratet, sowas meinte ich...


----------



## Camino (12. Mai 2011)

Doch, wenn du das über Eclipse und "Export" als runnable JAR machst, dann kannst du das in 1 jar-Datei abspeichern. Diese Datei kannst du dir auf deinen Desktop oder irgendwo anders hinlegen und wenn Java installiert ist und läuft, startet dein Spiel mit einem Doppelklick. Falls es dann doch nicht starten sollte, würde ich mal versuchen, die jar-Datei über die Konsole zu starten. (java -jar meinspiel.jar) Vielleicht gibt es ja Fehler, die dann über die Konsole ausgegeben und sichtbar werden.


----------



## Java und so~ (12. Mai 2011)

Okay, die jar-datei hab ich, aber wenn ich das beispielsweise bei dem Spiel aus Quaxlies Tut mache, kommt nur das Hintergrundbild und dann passiert nichts weiter. Über die Konsole macht er es mit den befehlen auch nicht...


----------



## Camino (12. Mai 2011)

Was heisst 
	
	
	
	





```
Über die Konsole macht er es mit den befehlen auch nicht...
```
 ? Kommt garkeine Meldung oder Fehlerausgabe, wenn du versuchst, in dem Verzeichnis, in welchem deine jar-Datei liegt, diese mit 
	
	
	
	





```
java -jar meinedatei.jar
```
 zu starten?


----------



## Java und so~ (12. Mai 2011)

Das mit dem befehl funktioniert jetzt. Wenn ich dann das Spiel starte und Enter drücke damit's los geht, krieg ich eine Fehlermeldung, dass er die Bilder nicht laden kann


----------



## Camino (12. Mai 2011)

Dann solltest du mal schauen, ob die Bilder überhaupt mit in dem jar drin sind. Wenn ja, müssen sie im Java-Code richtig eingebunden werden, als Resource. Musst du mal über die Suchfunktion oder Google schauen, da gibt es mehrere Beispiele.


----------



## Java und so~ (12. Mai 2011)

so wie ich das gesehen habe ist in er jar datei nur das gamePanel drinne, nicht aber die anderen Componenten... zumindest Fehlen die Klassen Heli, Cloud, Racket und Explosion


----------



## Camino (12. Mai 2011)

Hmm, du hast die anderen Klassen aber in deinem Projekt in Eclipse mit drin? Normalerweise packt Eclipse die beim Export alle zusammen in die jar mit rein. Läuft es denn, wenn du das Spiel über Eclipse (run) startest?


----------



## Java und so~ (12. Mai 2011)

Wenn ich es normal über Eclipse starte dann läufts. Die verschiedenen Klassen sind auch alle in dem gleichen Java-Projekt drinne... ka was der da für Probleme hat D:


----------



## Camino (12. Mai 2011)

Hast du in dem Projekt verschiedene Packages, in denen die Klassen liegen? Dann müssten die in dem erzeugten jar (als runnable jar) auch wie eine Ordnerstruktur angelegt sein. Wenn du die jar-Datei nicht mit Java startest, sondern mit einem Archivprogramm öffnest und anschaust, müsstest du eigentlich diese Ordnerstruktur und auch die Klassen dort drin sehen.


----------



## Java und so~ (12. Mai 2011)

Die Strucktur meines Projekts sieht so aus:
Projekt
  ~src
    -default package
      *Klasse 1
      *Klasse 2
      *Klasse 3
      *...
      *Klasse n

müsste doch dann nach meinem Verständnis alles auch in der jar-datei zusammen liegen...


----------



## Camino (12. Mai 2011)

Und wie sieht die Struktur in dem erzeugten jar aus? Die Klassen müssten dann dort doch auch drin sein.


----------



## Java und so~ (12. Mai 2011)

sind sie ja auch, aber wenn ich über die cmd das Spiel mit java -jar test.jar aufrufe und mit Enter straten will kommt "Exception in Thread "AWT-EventQueue-0" java.lang.IlleagalArgumentException: input == null!" was meiner Meinung nach ja ebdeuten müsste, dass er die Bilder nicht laden kann...


----------



## Camino (12. Mai 2011)

Java und so~ hat gesagt.:


> sind sie ja auch


Aber weiter oben hattest du geschrieben, dass einige Klassen fehlen würden...
Sind die oben genannten Klassen denn nun in der jar drin oder nicht? Und sind auch die Bilder in der jar?


----------



## Java und so~ (12. Mai 2011)

Sie waren mal nciht drinne, hab sie jetzt aber rein gekriegt, funktioniert aber trotzdem nicht...
Sorry, für die Verwirrung


----------



## Camino (12. Mai 2011)

OK, sind die Bilder auch im jar drin? Und wie schon geschrieben: die Bilder müssen im Code richtig eingebunden werden, mit getResource()... Ansonsten klappt das evtl. nur in Eclipse, aber nicht im jar.


----------



## Java und so~ (13. Mai 2011)

Die Bilder aus meinem Spiel sind allerdings animiert, weshalb das mit getResource dann problematisch wir, oder?
Bei mir wurden die Dateien mit dem BufferedImage geladen und animiert


----------



## Gastredner (13. Mai 2011)

Wieso sollte das ein Problem sein? Du besorgst dir von der Resource in deinem Jar einen InputStream und übergibst diesem ImageIO, damit daraus ein BufferedImage erzeugt wird.
Und was meinst du mit "animiert"? GIF-Bildchen? Oder zerlegst du das Bild in Einzelbilder, die hintereinander abgespielt eine Animation ergeben?
So oder so, laufen sollte es.


----------

