Bisher hab ich die texturen für meine Spiele immer mit ImageIO.read(getClass().getResource("example.png")); aus der src-Datei des Projekts geladen.
Nun möchte ich, dass er das Bild aus einem Ordner im Desktop lädt: hero = ImageIO.read(getClass().getResource("C:/Users/MeinNameGehtEuchNixAn;)/Desktop/PixelRPG/Held.png"));
Mir zeigt Eclipse dabei aber immer nur diesen fehler an:
Exception in thread “main” java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
at Game$Hero.(Game.java:267)
at Game.running(Game.java:103)
at Game.(Game.java:53)
at Main.main(Main.java:4)
Mit
ImageIO.read(new File(“C:/Users/MeinNameGehtEuchNixAn/Desktop/PixelRPG/Held.png”));
würde das wohl gehen, aber das sollte man NICHT machen! (Das ist genau das Gegenteil von dem, was alle sonst immer erreichen wollen… Welchen Zweck soll das erfüllen? Das läuft dann nur noch bei Leuten, deren Name uns nix angeht…)
Jo, läuft, Danke!
Wie mache ich “C:/Users/MeinName…” jetzt so variable, dass das Spiel als .jar-Datei auch auf dem Computer meiner Freunde “Unbenannt” und “SeineMumWarZuFaulUmSichEinenNamenAuszudenken” läuft, sofern sie die resourcen auf dem Desktop haben?
Das Ziel ist es eine .jar-Datei zu machen. Dabei soll er die Resourcen finden, damit ich das ganze Spiel versteilen kann. Beim kompilieren bekomm ich jedoch immer nur eine .jar-Datei und der Rest verschwindet spurlos…
dann sind deine build-einstellungen falsch
anstatt die bilder in deinen src-ordner zu packen erstell einen weiteren ordner, z.b. rsc und füg diesen dem build-path hinzu damit er dann auch im jar landet
der fehler ist also nicht dein code sondern der build wie dein jar zusammen gepackt wird
normalerweise werden nämlich der source-files compiled und in einen weiteren ordner, meist bin, dist oder debug (je nach build-setting) gepackt und diese dann gepackt
resourcen wie bilder die im src liegen werden standardmäßig nicht mitkopiert und landen daher auch nicht im jar
was auch möglich wäre aber unsauber ist die resourcen in ein extra jar und das im manifest des hauptjar im cp mit einzutragen
Was heißt: verschwindet spurlos. Hast du mal in die jar-Datei reingeschaut, ob die Bilder dort drin liegen? Wenn Sie dort nicht sind, dann beschreibe mal wie genau du die jar erstellst.
dann sind deine build-einstellungen falsch
anstatt die bilder in deinen src-ordner zu packen erstell einen weiteren ordner, z.b. rsc und füg diesen dem build-path hinzu damit er dann auch im jar landet
der fehler ist also nicht dein code sondern der build wie dein jar zusammen gepackt wird
normalerweise werden nämlich der source-files compiled und in einen weiteren ordner, meist bin, dist oder debug (je nach build-setting) gepackt und diese dann gepackt
resourcen wie bilder die im src liegen werden standardmäßig nicht mitkopiert und landen daher auch nicht im jar
was auch möglich wäre aber unsauber ist die resourcen in ein extra jar und das im manifest des hauptjar im cp mit einzutragen
So sieht das jetzt aus:
Game
—settings
—bin
—res
------music
------textures
---------Game // Der Ball und der Schläger
---------letters // hab mir für das spiel eigene Ziffern gemalt
---------Menu // Bilder für die Köpfe…
—src
der fehler ist also nicht dein code sondern der build wie dein jar zusammen gepackt wird
normalerweise werden nämlich der source-files compiled und in einen weiteren ordner, meist bin, dist oder debug (je nach build-setting) gepackt und diese dann gepackt
resourcen wie bilder die im src liegen werden standardmäßig nicht mitkopiert und landen daher auch nicht im jar
Wie genau stell ich das ein?
Mit Project → Properties → Java Build Path → … ?
Was heißt: verschwindet spurlos. Hast du mal in die jar-Datei reingeschaut, ob die Bilder dort drin liegen? Wenn Sie dort nicht sind, dann beschreibe mal wie genau du die jar erstellst.
File → Export → Java → und eine der Möglichkeiten…
Game
—settings
—bin
—res
------music
------textures
---------Game // Der Ball und der Schläger
---------letters // hab mir für das spiel eigene Ziffern gemalt
---------Menu // Bilder für die Köpfe…
—src[/quote]
sieht soweit sauber aus
jetzt muss nur noch der rsc-ordner in den build-path damit der dann auch im exportierten jar landet
[QUOTE=DVDB;78382]Wie genau stell ich das ein?
Mit Project → Properties → Java Build Path → … ?[/quote]
das müssten dir unsere eclipse-profis erklären
ich selber bin nur eher hobby-entwickler und nutze keine IDE
naja, du willst ja das man deine jar auch „ausführen“ kann, also wählst du „Runnable Jar File“ aus
achte darauf die richtige main-class zu setzen müsste irgendwo unter project-settings stehen