Java Projekt als ausführbare Jar Exportieren (Eclipse) Problem

korbmeister

Aktives Mitglied
Hey Leute ich möchte mein Java Projekt (Ein Spiel) so Exportieren, dass ich es mit einem Doppelklick starten kann ohne Eclipse oder so, mir wurde empfohlen es mit Eclipse zu einer ausführbaren Jar zu exportieren. Gesagt getan nur höre ich bei meinem Spiel keinen Sound und sobald ich eine Münze berühre bleibt es einfach alles stehen (In Eclipse ist das natürlich nicht der Fall) hier die betreffenden Code Zeilen meines Programms:

Soundlib Klasse aus Quaxils Tut kopiert
Java:
import java.applet.*;
import java.net.*;
import java.util.*;

public class SoundLib {

	Hashtable<String, AudioClip> sounds;
	Vector<AudioClip> loopingClips;
	
	public SoundLib(){
		sounds = new Hashtable<String, AudioClip>();
		loopingClips = new Vector<AudioClip>();
	}
	
	public void loadSound(String name, String path){
		
	if(sounds.containsKey(name)){
		return;
	}
		
   URL sound_url = getClass().getClassLoader().getResource(path);
   sounds.put(name, (AudioClip)Applet.newAudioClip(sound_url));
	}
	
	public void playSound(String name){
		AudioClip audio = sounds.get(name);
		audio.play();
	}
	
	public void loopSound(String name){
		AudioClip audio = sounds.get(name);
		loopingClips.add(audio);
		audio.loop();
	}

	public void stopLoopingSound(){
     for(AudioClip c:loopingClips){
    	 c.stop();
     }
	}

}

Java:
                soundlib = new SoundLib();
		soundlib.loadSound("musik", "sound/musik.wav");
		soundlib.loadSound("jump", "sound/jump.wav");
		soundlib.loadSound("münze", "sound/münze.wav");
		soundlib.playSound("musik");

Java:
public void berechne_münze_getroffen() {
		feld_x=px/30+z;
		feld_y=py/30;
		if(Map[feld_y][feld_x] == 3 ){
			Map[feld_y][feld_x] = 0;
			score += 1;
			soundlib.playSound("münze");
			münzen ++;
		}
 

Timothy Truckle

Top Contributor
Wenn du das jar mal "mit der Hand" startest, gibts dann Stacktraces in der Console?

Und nur um sicherzugehen: dass Verzeuchnis in dem Deine Sound-Dateien liegen war Teil des Eclipse-Classpaths und wurde auch mit in's Jar gepackt?
Und wenn ja, hast Du die Zugriffspfade im Programm versehentlich relativ zum Projektordner?

bye
TT
 

korbmeister

Aktives Mitglied
Oh Gott das musst du für mich nochmal neu formulieren ich versteh nur Bahnhof, sollte vielleicht dazu erwähnen, dass ich Java erst seit 2 Wochen machen. Weiß nicht wie ichs "von Hand starte", was Stracktraces oder Classpaths sind sorry ich lad gleich mal ein Bild hoch, wenn das hilft.

EDIT: Directupload.net - ln4ev85s.png
 
Zuletzt bearbeitet:

Timothy Truckle

Top Contributor
Oh Gott das musst du für mich nochmal neu formulieren ich versteh nur Bahnhof, sollte vielleicht dazu erwähnen, dass ich Java erst seit 2 Wochen machen. Weiß nicht wie ichs "von Hand starte",
Code:
java -jar deineAnwendung.jar
was Stracktraces oder Classpaths sind
Also Nach 2 Wochen sollte man schon mal einen Stacktrace (typische Java-Fehlermeldung in der Konsole) gesehen haben.
Let me google that for you
bye
TT
 

Marco13

Top Contributor
Jupp, auf diese 'null's wollte ich hinaus (die sollten mit dem angedeuteten System.out's auch ausgegeben werden).

Wenn du "export as runnable JAR" machst, erscheint so ein Dialog mit einem Baum - wenn man den ausklappt, kann man sehen, ob für das Verzeichnis, wo die WAVs drinliegen, in dem Baum auch ein Häckchen gesetzt ist (d.h. ob sie mit exportiert werden). Wenn sie dabei sind, muss (ich mir nach etwas Schlaf)/(jemand sich) die Sache mit der URL nochmal genauer ansehen, um zu klären, warum die nicht gefunden wird.
 

Kevin94

Top Contributor
Mir fallen da zwei Ansatzpunkte ein:
Zum einen wird ein der Pfad der URL bei getResource relativ zum Package der Klasse interpretier, wenn er nich mit eine
Code:
/
anfängt, das sollte bei dir allerdings nicht das Problem sein, da bei dir alle Klassen im Default-Package liegen. Du kannst mal die URL ausgeben um die Richtigkeit des Pfades zu überprüfen.
Zum anderen bin ich mir nicht sicher, ob Eclipse die Sound-Dateien auch in den richtigen Ordner in der .jar gelegt hat. Es kann sein, dass sie gar nicht enthalten sind oder in einem zusätzlichen Unterordner liegen. Das kann man am einfachsten kontrollieren, indem man die .jar in .zip umbennent und mit dem Explorer öffnet. Alternativ könnte man sich auch die Ausgabe von
Code:
jar -tf nameDer.jar
anschauen.
 

Marco13

Top Contributor
Ahja, bei Runnable JARs verwendet er die Launch Config. Dann wird es wohl schlicht an den Pfaden liegen. Da bin ich leider nicht so "versiert" - habe selten Runnable JARs mit Resources, müßte darum auch ein bißchen mit sowas wie
URL sound_url = getClass()[strike].getClassLoader()[/strike].getResource(path);
oder
soundlib.loadSound("musik", "./sound/musik.wav");
rumspielen, bis es passt - vielleicht kann jemand da gezielter helfen :oops:
 

korbmeister

Aktives Mitglied
Ahja, bei Runnable JARs verwendet er die Launch Config. Dann wird es wohl schlicht an den Pfaden liegen. Da bin ich leider nicht so "versiert" - habe selten Runnable JARs mit Resources, müßte darum auch ein bißchen mit sowas wie
URL sound_url = getClass()[strike].getClassLoader()[/strike].getResource(path);
oder
soundlib.loadSound("musik", "./sound/musik.wav");
rumspielen, bis es passt - vielleicht kann jemand da gezielter helfen :oops:
Ohne Erfolg.

Jar Datei mit Zip geöffnet schaut für mich alles richtig aus:Directupload.net - yliofudo.png

Problem bleibt weiterhin bestehen, als denke ich das irgendwas mit dem Pfad nicht stimmt könntet ihr mir da nen anderen geben der funktioniert oder gibt es nur die Möglichkeit?

So hab mir jetzt mal die Sound URL ausgeben lassen, müsste da statt bin nicht src stehen?

file:/K:/Eclipse/Game%20Demo/bin/sound/musik.wav
file:/K:/Eclipse/Game%20Demo/bin/sound/jump.wav
file:/K:/Eclipse/Game%20Demo/bin/sound/m%c3%bcnze.wav
 
Zuletzt bearbeitet:

korbmeister

Aktives Mitglied
Nicht so, dass es mich interessieren würde was ein Gast schreibt, aber zunächst einmal habe ich nicht gesagt "hat man jemand schnell zeit mir ein vollaufähiges Spiel zu programmieren" sondern nur nach der Lösung für ein für mich unlösbares Problem, ich hab bereits dazu gegoogelt aber finde halt nix, und wie ich es selber beheben soll weiß ich einfach nicht. Außerdem ist das der Sinn von einem Forum und es ist nicht so, dass ich anderen nicht in Sachen die ich kann nicht helfe.
 

Kevin94

Top Contributor
Die Ausgabe der URL kann nicht stimmen. Das sind Dateien auf der Festplatte und nicht im .jar. Wenn das die Ausgabe ist, die kommt wenn du dier jar startest und als Pfade
Code:
/sound/datei.wav
verwendest, dann bin ich am Ende meiner Weisheit.
Theoretisch müsste so etwas wie
Code:
jar:file:/K:/Eclipse/GameDemo.jar!/sound/musik.wav
rauskommen. Du kannst auch mal versuchen, was passiert wenn du so eine URL manuell anlegst mit new URL und hartkodiertem, aboluten Pfad.
 

korbmeister

Aktives Mitglied
wenn ich mir system.out.println die sound_url ausgeben lasse, kommt in Eclipse das oben geschriebene raus bei der jar steht nur einmal null das war es. Mit der Hardcodierten URL probier ich aus aber muss erstmal gucken wie das geht.

edit: ich versteh es einfach nicht die Sound Dateien werden doch genau wie die Bilder geladen und die sehe ich schließlich auch -.-'
 
Zuletzt bearbeitet:

Kevin94

Top Contributor
Das erledigt Eclipse beim Starten oder einem Clean automatisch. Ausserdem funktioniert das Starten als .jar nicht und dabei sollte weder bin noch src im Pfad auftauchen.
 
S

Spacerat

Gast
Das mal aufmerksam durchlesen...
http://www.java-forum.org/allgemeine-java-themen/143525-relative-pfade-arbeitsvereichnisse.html

Ich weis nicht, wie es in anderen IDEs aussieht, aber in Eclipse zumindest ist der Klassenpfad zu Entwicklungszeit anders gestrickt, als zur normalen Laufzeit. Alle Ressourcen werden @build mit in das bin-Verzeichnis kopiert und in Tests wird dieser dann auch verwendet.
Das Problem scheint aber in ganz anderes zu sein, nämlich CodeBase und DocumentBase. Bei normaler Ausführung aus einem Archiv sind beide Verzeichnisse gleich, in Testsitzungen innerhalb von Eclipse jedoch unterschiedlich. Mit meinem kleinem Tool (dem Link folgend, dass im roten Kasten weiter unten) ist das aber alles nicht mehr so wild, denn man kann sich URLs des Rootverzeichnis einer beliebigen Klasse (vorzugsweise eine aus dem Archiv, in welchem sich die Ressourcen befinden) besorgen und muss dann nur noch den Archivpfad dranhängen.
 
F

Firephoenix

Gast
Liegen denn die Dateien passend bei der .jar?

Wenn du in deinem Programm z.B. "sounds/xyz.wav" lädst, dann sollte die Ordnerstruktur so aussehen:

-meineJar.jar
-sounds
--xyz.wav
usw.

Gruß
 

korbmeister

Aktives Mitglied
Ne hab das Problem ja jetzt gefunden, weiß zwar nicht wieso aber der Sound Ordner muss mit der Jar Datei in einem Ordner liegen, wie Firephoenix es erwähnt hat, wie krieg ich es jetzt noch hin, dass wirklich alles in der Jar bleibt?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Problem: Java Projekt als ausführbare Jar Exportieren (Eclipse) Java Basics - Anfänger-Themen 10
L ausführbare datei aus java-projekt? Java Basics - Anfänger-Themen 6
S Kleines Java-Projekt; Kassenprogramm Java Basics - Anfänger-Themen 7
E Kleines Java-Projekt für Anfänger Java Basics - Anfänger-Themen 10
A Java die richtige Programmiersprache für mein Projekt? Java Basics - Anfänger-Themen 1
A Hilfe bei Java Projekt Java Basics - Anfänger-Themen 4
K Java Projekt Hilfe Java Basics - Anfänger-Themen 5
Dimax In Java File (nicht in Java Projekt) mysql Driver importieren Java Basics - Anfänger-Themen 3
J Java findet plötzlich die Dateien im Projekt nicht mehr. Java Basics - Anfänger-Themen 12
R Java-Projekt im FTP hochladen Java Basics - Anfänger-Themen 6
H java erstes projekt Java Basics - Anfänger-Themen 502
G Mein Java Projekt funktioniert nicht Java Basics - Anfänger-Themen 5
alkaA Intellij Java Datei aus nicht Projekt ausführen? Java Basics - Anfänger-Themen 2
G Erste Schritte Suche Java Programmierer für kleines Projekt Java Basics - Anfänger-Themen 1
H Ist Java überhaupt die richtige Sprache für das Projekt? Java Basics - Anfänger-Themen 8
T Java Projekt aufbau Java Basics - Anfänger-Themen 5
C java Projekt mit Xuggler exportieren Java Basics - Anfänger-Themen 9
M Erste Schritte Heruntergeladenes Java Projekt lauffähig kriegen Java Basics - Anfänger-Themen 1
A Java Projekt Java Basics - Anfänger-Themen 1
1 Im Java Projekt eine txt datei einbinden? Java Basics - Anfänger-Themen 8
M Bekomm altes Uni-Projekt in java nicht mehr zum laufen Java Basics - Anfänger-Themen 7
J Schule Java Projekt Java Basics - Anfänger-Themen 8
M Maven Dependency im Java Projekt Java Basics - Anfänger-Themen 1
X Projekt Java Anfänger Java Basics - Anfänger-Themen 28
T mein erstes Java projekt Java Basics - Anfänger-Themen 8
N Input/Output Exportieren Java Projekt Java Basics - Anfänger-Themen 6
D McDonalds - Java Projekt frage Java Basics - Anfänger-Themen 7
V Kann kein Java Projekt mehr mit Eclipse erstellen Java Basics - Anfänger-Themen 5
E Mein erstes Java Projekt - Sauberer code? Java Basics - Anfänger-Themen 28
T Java Projekt als runnable jar file exportieren inklusive csv Dateien Java Basics - Anfänger-Themen 4
J Java-Projekt kompilieren Java Basics - Anfänger-Themen 5
R Java-Anfänger-Projekt-Begleiter gesucht Java Basics - Anfänger-Themen 18
C Wie lange dauert ein Projekt in Java? Java Basics - Anfänger-Themen 10
M Java-Projekt in JAR umwandeln und Datenbankzugriff Java Basics - Anfänger-Themen 10
C OOP Java Projekt Bankautomat input fehler Java Basics - Anfänger-Themen 14
N Aufrufen von .java Klassen in einem Projekt Java Basics - Anfänger-Themen 2
T Größeres Java Projekt Java Basics - Anfänger-Themen 12
Spin Konto (großes Projekt für anfänger in Java ^^) Java Basics - Anfänger-Themen 7
A Vorgehensweise bei einem Java Projekt Java Basics - Anfänger-Themen 3
schroedi Wie startet man eine JAVA EE Projekt Java Basics - Anfänger-Themen 22
J Java alle Deprecated Methoden im Projekt ermitteln Java Basics - Anfänger-Themen 8
G Projekt über Java möglich? Java Basics - Anfänger-Themen 9
H Java Projekt in Jbuilder05 Java Basics - Anfänger-Themen 4
G Wie finde ich das Verzeichnis von meinen Java Projekt? Java Basics - Anfänger-Themen 7
G Problem bei JAVA Projekt! Java Basics - Anfänger-Themen 6
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
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
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben