Holen Sie sich die Datei von der Main.Klasse.getResource()
Mache ich ein kleines Spiel in Java. Für dieses Spiel habe ich nur noch Geräusche. So möchte ich alle meine Bilder und audio-Dateien in die jar. Für Bilder das war ganz einfach:
new ImageIcon(Main.class.getResource("images/machgd2.png")).getImage()
Aber für audio es funktioniert nur wenn ich das Programm in Eclipse, aber nicht aus einem Topf. Ich benutze:
File soundFile = new File(Main.class.getResource(filename).getFile());
So, wie bekomme ich diese Datei aus dem inneren der .jar-Datei?
Update:
OK, habe es funktioniert, vielen Dank an Andrew!
Spielen den sound, den ich verwendet eine Klasse die ich im Netz fand, und ich fand heraus, dass die Klasse nur verwendet die Datei, um ein AudioInputStream, also ließ ich die Datei Ding.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn es in eine jar-Datei, es nicht eine Datei auf dem system, oder? Sie werden entweder haben, kopieren Sie die Datei aus der jar-Datei in einen temporären Speicherort, oder APIs verwenden, die nicht benötigen eine Datei (z.B. diejenigen, die brauchen nur eine
InputStream
oder eineURL
, die beide leicht zugänglich von jar-Dateien mitgetResourceAsStream
odergetResource
.).Sie haben nicht gezeigt, wo Sie sind mit
soundFile
- wenn Sie uns zeigen, welche APIs Sie versuchen zu verwenden, können wir versuchen Sie Ihnen eine angemessene alternative.Sehen "Spielen eine
Clip
" aus der Java Sound-info-Seite hier SO zu sehen..Denen, die Sie sehen, verwendet eine
URL
(zurückgegeben durchgetResource()
), anstatt eineFile
. Die Methode ist überladen zu akzeptieren auchFile
oderInputStream
, aber ich benutze dieURL
basierten version am häufigsten.