# Netbeans Build Project... keine Images dabei???



## radiac (5. Aug 2009)

Hallo,

hab ein kleines Problem. Habe ein programm gebaut, das in einem Fenster ein Bild anzeigen  soll. Das Bild befindet sich im Netbeans-folder (nicht in der Project-ansicht) in einem "src" ordner... 

mein COde soll das bild auch aus "src/bild.png" laden. In der IDE funktioniert alles... sobald ich das projekt builde kommt das Bild nicht mehr.

Habe die Jarfile mit Winrar geöffnet... dort ist das Bild einfach so reingeschmissen worden ohne dem src Ordner...
Macht die IDE was falsch???
Wie bekommt mein Code das Bild zu greifen?


----------



## radiac (5. Aug 2009)

Hmm... hab das Problem gelöst... hab in dem ausführbaren Ordner einfach ein Ordner angelegt wo sich die Jar befindet und dort einen src Ordner erstellt. Dann nur noch das Bild rein, und es ging... Diese Methode ist aber irgendwie sinnlos... warum gebe ich dann erst in meinem Code ein Pfad an???

Gibts da bessere Lösungen???


----------



## maki (5. Aug 2009)

Der Fehler leigt bei dir 

Glaube kaum, dass du einen src Ordner in deiner Jar hast, abgesehen davon versuchst du wohl das Bild als File und nicht als Stream zu laden.


----------



## radiac (5. Aug 2009)

also momentan wird die Bilddatei als File geladen.

Aber wenn ich das als stream lade, wo ist da der unterschied???
Im endeffekt wird die File doch sowieso wieder genau so geladen...

Zudem ist das ja nur ein Testprogramm... 
es soll wirklich nur 1 Bild auf den screen anzeigen.
Tut es ja auch...

nur muss ich eben neben der Jar.file im gleichen Ordner einen neuen Ordner mit Namen src anlegen...
Habe aber schon Java Programme gesehen die alles mit einer exe-FIle laden.


----------



## maki (5. Aug 2009)

> Aber wenn ich das als stream lade, wo ist da der unterschied???


"Dateien" in einem Zip Archiv (Jar) sind gar keine Dateien und können deswegen nicht als File geladen werden


----------



## Gonzo17 (5. Aug 2009)

```
InputStream stream = getClass().getClassLoader().getResourceAsStream(
				"bild.png");
```

Wenn du das in deine Klasse schreibst, dann bekommst du einen InputStream. Und ein neues Image kannst du mit diesem InputStream ja erzeugen.


----------



## radiac (6. Aug 2009)

@ maki: Wo befindet sich denn die Datei wenn ich die über einen stream lade?
In einem Zip Archiv? Oder in einem Ordner...

@Gonzo: Das gleiche Frag ich dich .

Denn Ziel meiner Frage ist, ob man die Bilder (die ja meist das wichtigste für ein Spiel sind und man nicht unbedingt will, das User diese (klauen) oder ändern) verstecken kann.

So zbs. hat man ein Onlinespiel gebaut in dem 2 Männchen rumlaufen und sich abschiessen... beide haben eigentlich eine Tarnfarbe, das man sie nicht auf Anhieb sieht. Jetzt kommt ein User daher und nimmt die Bilddatei raus und ändert ein männchen so, das es signal Rot leuchtet und somit der Gegner ein Vorteil erlangt .

Nur ein Beispiel... viele kennen ja die Hacks für Counterstrike... Das will ich von der Wurzel meines Spiels vermeiden .


----------



## maki (6. Aug 2009)

> @ maki: Wo befindet sich denn die Datei wenn ich die über einen stream lade?
> In einem Zip Archiv? Oder in einem Ordner...


Nochmals: In Zip Archiven (Jars) gibt es keine Dateien, das Zip Archiv ist eine einzige Datei, die viele daten enthält 
Deswegen kann man sie auch nicht mit File laden, sondern nur über Streams


----------



## radiac (6. Aug 2009)

@ Maki...

wir reden aneinander vorbei .

Ich weis das die Jar eine Zipfile ist. Ich weis auch, das in der Zipfiles keine Bilder drinne sind. 
Um das Bild da hin zu zaubern, musste ich einen seperaten Ordner anlegen der "Src" heisst, damit das Jar die Bilddatei findet....

Mich stört, das jeder die Bilder einfach so bearbeiten kann mit der Technik...
Gibt es eine Möglichkeit die Daten zu verstecken / Verschlüsseln???


----------



## maki (6. Aug 2009)

Jetzt denke ich dass ich dich verstehe...



> Gibt es eine Möglichkeit die Daten zu verstecken / Verschlüsseln???


Nee, nicht wirklich, soviel ich weiss zumindest.


----------

