Richtiger Weg um eine Datei zu finden.

M

Mikrowelle

Hallo
Ich habe mit Spieleprogrammierung begonnen und nach paar Tagen ist das erste auch fertig. Bis auf meine Hintergrundmusik!

Ich spiele dazu eine mp3 Datei ab mit java zoom lib.

Code:
InputStream is = new FileInputStream(getClass().getResource("music/zwt.mp3").toString().substring(6));

		    backgroundMusic = new BackgroundMusic(is);
			Thread t0 = new Thread(backgroundMusic);
			t0.start();

Wenn ich es aus Eclipse starte funktioniert das wunderbar. Wenn ich aber eine executable jar erstelle und die selbst ausführe... startet das Spiel ohne die Musik.

Wenn ich das richtig erkennen kann dann wegen den Pfad, genauer gesagt aus "/" macht er ein "\"

Warum geht das dann in Eclipse?
Wie kann ich es lösen?
 
Zuletzt bearbeitet von einem Moderator:
Hi

So habe ich es schon probiert gehabt. FileNotfound Exception auch mit File.seperator probiert...

java.io.FileNotFoundException: \music\zwt.mp3 (Das System kann den angegebenen P
fad nicht finden)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at jDev.Game.GamePanel.startBackgroundMusic(GamePanel.java:140)
at jDev.Game.GamePanel.<init>(GamePanel.java:112)
at jDev.Game.GamePanel.main(GamePanel.java:94)
 
Zuletzt bearbeitet von einem Moderator:
Moin,

hmm, um welches OS handelt es sich denn überhaupt?
Win oder Linux?

Wo liegt die Datei genau (in Relation zum Ausführungspfad) ?
"\music\zwt.mp3" müsste dann doch eine Ebene unter Deinen Programmverzeichnis sein ...

Gruß
Klaus
 
Es ist Windows 7
Pfad der jar : C:\Users\xxx\Desktop\Game\game.jar

Wenn ich die jar entpacke dann ist die mp3 Datei 2 Ordner tiefer.
C:\Users\xxx\Desktop\Game\jDev\music\zwt.mp3

Die .class dateien sind in jDev drinne
 
Hallo,

wenn du relative Pfade angibst, sollte kein / oder \ am Anfang des Pfades stehen.

Viele Grüße

Sascha
 
Ok ich habe das jetzt gelöst

Das Problem war der zusamenhang von getResource und Inputstream. Man muss getResource as Stream benutzen und schon gings ohne Probleme.

Falls es mal jemand brauchen wird:
Code:
backgroundMusic = new BackgroundMusic(getClass().getResourceAsStream("music/zwt.mp3"));
					
					Thread t1 = new Thread(backgroundMusic);
					t1.start();
 
Zurück