Jar erstellen + getresource

loocker

Mitglied
Hi,

ich habe folgendes Problem - habe schon reichlich gegoogelt und auch hier im Forum geguckt aber nichts passendes gefunden - und zwar . möchte ich gerne eine Jar erstellen die Sound und Bilddateien enhält. Bis jetzt habe ich die Datei so aufgerufen
Java:
public String datei = "Sounds/01 - Sylvester.mp3";
da ich das mit getresource nicht hinbekommen habe. Habe bestimmt schon 20 Versionen versucht aber habe immer die Fehlermeldung bekommen "Unkown Source". Eine Variante ist
Java:
String datei = getClass().getResource("Sounds/01 - Sylvester.mp").toString();

Die Ordnerstruktur in eclipse Helios ist wie folgt:
SEPSpace
  • src
  • Sounds (Sound Dateien)
  • Bilder (Bilder in Unterordnern)
und im src Ordner befinden sich noch mehere packages

Wie kann ich jetzt vorgehen, das das funktioniert, mit Java Anfänger und bin Froh das es jetzt in Eclipse überhaupt läuft.
Hier noch mein Quellcode
Java:
package gruppe_e.sepspace.funktionen;


import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;


import javazoom.jl.decoder.*; 
import javazoom.jl.player.advanced.AdvancedPlayer;
import javazoom.jl.player.advanced.PlaybackEvent;
import javazoom.jl.player.advanced.PlaybackListener;

  public class Sound 
{
	static AdvancedPlayer player = null; 
    int i = 1;
    InputStream is;
    String Lieder[] = { "Sounds/01 - Sylvester.mp3", "Sounds/02 - China Experience.mp3" , "Sounds/03 - The World.mp3",
    		"Sounds/04 - Trance in the House.mp3"};
 	public String datei = "Sounds/01 - Sylvester.mp3";
 	//String datei = getClass().getResource("/01 - Sylvester.mp").toString();
 	 	
 	public void PlayerIni() throws JavaLayerException, FileNotFoundException
	{
    	try 		
		{	
			is = new FileInputStream( datei );
			player = new AdvancedPlayer(   (is)); 
        } 
        catch ( JavaLayerException e ) 
        { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
        }
        player.setPlayBackListener(new PlaybackListener() {
            public void playbackFinished(PlaybackEvent evt) {
            	try {
					actionPerformed(evt);
				} catch (JavaLayerException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (FileNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} 
            }

			private void actionPerformed(PlaybackEvent evt) throws JavaLayerException, FileNotFoundException 
			{
				if(i >= Lieder.length)
					i = 0;
				datei = Lieder[i] ;
				i++;
				PlayerIni();
				SoundOnOff(true);
			}
        });
	}
	
	public void SoundOnOff(boolean OnOff) throws JavaLayerException
    {
    	if(OnOff)
    		player.play();
    	else
    		player.close();
    }
}
 

tagedieb

Top Contributor
1. Verwende
Code:
getResourceAsStream()
dann bekommst du gleich den InputStream.
2. Fuege ein
Code:
/
vor den Pfad ein, damit Java die Datei im Root des Classpath sucht, ansonsten wird relativ zu deiner Java Klasse gesucht.

Java:
InputStream is = getClass().getResourceAsStream("/Sounds/01 - Sylvester.mp");
 

loocker

Mitglied
hi, danke schon mal für die Antwort. Habe meinen Code jetzt so abgeändert:
Java:
public void PlayerIni() throws JavaLayerException, FileNotFoundException
	{
    	try 		
		{	InputStream is = getClass().getResourceAsStream("/Sounds/01 - Sylvester.mp");
 	
						player = new AdvancedPlayer(is ); 
        }
Leider ohne Erfolg, bekomme diese Fehlermeldung:
Java:
Exception in thread "Thread-5" java.lang.NullPointerException: in
	at javazoom.jl.decoder.Bitstream.<init>(Unknown Source)
	at javazoom.jl.player.advanced.AdvancedPlayer.<init>(Unknown Source)
	at javazoom.jl.player.advanced.AdvancedPlayer.<init>(Unknown Source)
	at gruppe_e.sepspace.funktionen.Sound.PlayerIni(Sound.java:30)
	at gruppe_e.sepspace.funktionen.SoundThread.run(SoundThread.java:20)
Findet anscheinend die Datei nicht.
 

loocker

Mitglied
eigentlich mp3. Aber bekomme die gleich Fehlermeldung.
Wo genau muss die Sounddatei liegen, habe sie imo als normalen Ordner im Projekt, oder muss der Soundordner auch ein SourceFolder sein?
 
Zuletzt bearbeitet:

FArt

Top Contributor
Muss natürlich auch ein Sourcefolder sein, sonst liegt er nicht im Classpath.

Sourcefolder liegt im Klassenpfad? Warum das denn... die Klassen sollten im Klassenpfad liegen.

Man kann doch bei Eclipse auch eine Verzeichnis in den Klassenpfad aufnehmen, oder? Entweder als Library oder in der Run-Konfiguration.
 

MrGe

Mitglied
Hast du Eclipse über die Ressourcen informiert (BuildPath)?
Wenn ich das richtig in Erinnerung habe, kopiert Eclipse sie nur dann in den "bin"-Zweig, wenn sie im BuildPath sind.
Wenn nicht liegen sie nur im "src"-Zweig und nützen niemandem.

Beste Grüße
 

loocker

Mitglied
Denke schon, wenn ich auf Properties des Projektes gehe und dann auf Java Build Path ist dort unter Source, der src und Sound Ordner angegeben. Meinst du das damit?
 

mvitz

Top Contributor
Evtl. mal im Windows Explorer prüfen, ob sich die mp3s im bin Ordner des Projektes befinden. Mp3 ist ja jetzt nicht so üblich, evtl. filtert eclipse hier.
 

loocker

Mitglied
weiß nicht warum, aber jetzt geht es mit
Java:
InputStream is = getClass().getResourceAsStream("/01 - Sylvester.mp3");
und auch wenn ich eine Jar raus mache. :toll:
Danke für die ganzen Tipps!
Wie man oben im Anfangspost sieht, lese ich jedes Lied neu ein, wenn das andere ende ist, gibt es ein bessere Lösung. Indem man alle aufeinmal in den inputstream einließt?
 

tagedieb

Top Contributor
weiß nicht warum, aber jetzt geht es mit..

weil du Sounds als 'Source' Folder definiert hast. Die Source Folders sind nicht Teil des Classpaths.
Vergleiche es mit dem default 'src' Folder. Dieser wird ja auch nicht im Jarfile angelegt sondern nur deine Packete und Klassen.

Wenn du einen SubFolder Sounds haben moechtest musst du unter Sounds nochmal einen Sounds Folder anlegen.

Damit keine Verwirrung aufkommt wuerd ich den ersten Sounds Folder in 'Resources' umbenennen.

Code:
Resources (Eclipse Source Folder)
   |-- Sounds
      |-- 01 - Sylvester.mp3
      |-- 02 - ....mp3
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...
Ähnliche Java Themen
  Titel Forum Antworten Datum
T File-Objekt aus getClass().getResource() erstellen? Java Basics - Anfänger-Themen 5
XWing Int erstellen lassen? Java Basics - Anfänger-Themen 11
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
A exe Datei erstellen Java Basics - Anfänger-Themen 8
J Packages erstellen Java Basics - Anfänger-Themen 7
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
C Gewinnspiel erstellen mit Algorithmus Java Basics - Anfänger-Themen 3
Ostkreuz Spielfeld Schatz erstellen Java Basics - Anfänger-Themen 5
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
laxla123 Dreieck erstellen Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
A Passwort erstellen Java Basics - Anfänger-Themen 3
S CVS erstellen Java Basics - Anfänger-Themen 1
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
dennis_lnz Klassen Wie kann ich mein Java Textadventure verbessern, um ein Klassendiagramm zu erstellen? Java Basics - Anfänger-Themen 9
dcHost Java Kara Sensor erstellen Java Basics - Anfänger-Themen 1
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U JList erstellen Java Basics - Anfänger-Themen 2
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
berserkerdq2 IO Streams logfile erstellen und Sachen schreiben wie? Java Basics - Anfänger-Themen 2
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
N 2D Array Summe erstellen Java Basics - Anfänger-Themen 6
T Log Funktion erstellen Java Basics - Anfänger-Themen 1
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
S Programm erstellen Java Basics - Anfänger-Themen 3
S MinMax Programm erstellen Java Basics - Anfänger-Themen 4
S Mit for-Schleife ein 2D JLabel-Array mit veränderbaren Icons erstellen Java Basics - Anfänger-Themen 3
T Countdown erstellen Java Basics - Anfänger-Themen 7
I ZIP File erstellen Java Basics - Anfänger-Themen 10
L Ordner in neuen erstellten Ordner erstellen Java Basics - Anfänger-Themen 12
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
B Zurück Button erstellen Java Basics - Anfänger-Themen 1
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62
B JaxB - Referenzen erstellen? Java Basics - Anfänger-Themen 2
K Rekursion: Rechenmauer mit Array erstellen Java Basics - Anfänger-Themen 17
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
E Classpath Datai erstellen Java Basics - Anfänger-Themen 3
B eine methode erstellen Java Basics - Anfänger-Themen 7
I Entity erstellen, die für API gedacht ist Java Basics - Anfänger-Themen 33
M Packages erstellen mit Java-Editor Java Basics - Anfänger-Themen 6
L FinanzApp erstellen Java Basics - Anfänger-Themen 1
J Junit4 Klasse erstellen Java Basics - Anfänger-Themen 5
B Warteschlange erstellen mit LinkedList ? Java Basics - Anfänger-Themen 6
Animal-Mother BMI Rechner erstellen für W/M Java Basics - Anfänger-Themen 7
F GSON file mit einer List erstellen Java Basics - Anfänger-Themen 2
Ray19941 Über BlueJ Textdatei selbstständig erstellen lassen Java Basics - Anfänger-Themen 2
J Java Queue mit default Werten erstellen Java Basics - Anfänger-Themen 4
JaVaN0oB Bruchklasse erstellen Java Basics - Anfänger-Themen 9
N Kreismuster auf Bestehendem Kreis erstellen Java Basics - Anfänger-Themen 10
K Rahmen erstellen mit mehrdimensionalem Array Java Basics - Anfänger-Themen 1
B Hilfe bei Map Liste erstellen Java Basics - Anfänger-Themen 10
F Adjunkte Matrix erstellen Java Basics - Anfänger-Themen 3
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
T Startbildschirm für ein Spiel erstellen Java Basics - Anfänger-Themen 0
C Probleme mit dem Erstellen und Importieren von Packages Java Basics - Anfänger-Themen 6
GermanPie Discord Text Channel erstellen? Java Basics - Anfänger-Themen 1
K Objektdiagramm erstellen Java Basics - Anfänger-Themen 3
C Wie kann ich Versionen eines Projektes in Eclipse erstellen? Java Basics - Anfänger-Themen 3
D Klassen Klassendiagramm richtig erstellen Java Basics - Anfänger-Themen 20
S Objekte indiziert erstellen Java Basics - Anfänger-Themen 27
C eigene Methoden erstellen (Instanzmethoden) Java Basics - Anfänger-Themen 7
B Methode für jede beliebe Entity erstellen Java Basics - Anfänger-Themen 7
E Filmsammlung erstellen Java Basics - Anfänger-Themen 6
B Eine Methode erstellen Java Basics - Anfänger-Themen 3
M Erstellen eines insets Objekts, GridBagLayout Java Basics - Anfänger-Themen 13
I ArrayList erstellen innerhalb einer Zeile? Java Basics - Anfänger-Themen 3
N String N-Gramme mit Stream erstellen Java Basics - Anfänger-Themen 7
K Quersumme erstellen Java Basics - Anfänger-Themen 7
M Wie kann ich ein Objekt erstellen, wenn sich der Klassenname in einer Variablen befindet? Java Basics - Anfänger-Themen 10
D Input/Output Mehrzeiligen String aus Textdatei erstellen Java Basics - Anfänger-Themen 5
C Erstellen eines Widerstandsnetzwerks Java Basics - Anfänger-Themen 10
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
A Taschenrechner mit Gui erstellen Java Basics - Anfänger-Themen 9
S Variablen Variablen in einer Schleife erstellen lassen Java Basics - Anfänger-Themen 11
S Hilfe : Unendlich viele Zufallszahlen erstellen? Java Basics - Anfänger-Themen 8
P Arrays "automatisch" erstellen lassen Java Basics - Anfänger-Themen 12
L Baum aus Integer Liste erstellen Java Basics - Anfänger-Themen 0
M Regex für bestimmte Wörter bzw. bestimmte Zeichen erstellen Java Basics - Anfänger-Themen 5
D Zusammenhängenden Graphen für Gleisnetz erstellen Java Basics - Anfänger-Themen 13
Y Unterschied zwischen WindowBuilder und herkömmlichen erstellen des GUI´s? Java Basics - Anfänger-Themen 9
M Writer für unterschiedliche Obj/inbt/double erstellen? Java Basics - Anfänger-Themen 1
Kirby.exe Generische Objekt Instanz erstellen Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben