|
You last visited: Today at 21:40
Advertisement
Fehler :S
Discussion on Fehler :S within the Java forum part of the Coders Den category.
10/16/2015, 15:37
|
#1
|
elite*gold: 10
Join Date: May 2013
Posts: 1,350
Received Thanks: 963
|
Fehler :S
Hey,
die Datei soll auf Eingabe des Users eine .WAV Datei abspielen.
Kann mir jemand sagen, wo der Fehler liegt?
PHP Code:
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineEvent;
import java.io.File;
import java.io.FileInputStream;
import java.util.*;
public class Joo {
public static void main(String[] args) throws Exception {
//User Eingabe
Scanner scanner = new Scanner (System.in);
System.out.printl("Drückste 1 sonst geschte weg mit 2");
while (true) {
System.out.printl("Deine Eingabe");
String.eingabe = scanner.nextLine();
// Eingabewert 1 spielt die musik ab
if (Integer.parseInt(eingabe) == 1) {
Object lock = new Object();
// Spielt die .Wav Datei ab
String soundFile = "/users/Mr.LongDong/desktop/Olexesh.wav";
try (AudioInputStream ais = AudioSystem.getAudioInputStream(new File(soundFile))){
Clip clip = AudioSystem.getClip();
clip.open(ais);
clip.addLineListener((e) -> {
if (e.getType() == LineEvent.Type.STOP) {
synchronized (lock) {
lock.notify();
}
}
});
clip.start();
}
synchronized (lock) {
lock.wait();
} else {
System.out.println("Haddeee Lan du willst keine Musik");
break;
}
}
}
}
}
|
|
|
10/17/2015, 02:40
|
#2
|
elite*gold: 0
Join Date: Oct 2015
Posts: 44
Received Thanks: 8
|
Hallöchen,
Ich kenne mich mit Java nicht 100%ig aus, bin jedoch der Meinung, das du den kompletten Computer-Pfad der Datei angeben musst.
Mit freundlichen Grüßen
TheRealLenon
|
|
|
10/17/2015, 11:18
|
#3
|
elite*gold: 10
Join Date: May 2013
Posts: 1,350
Received Thanks: 963
|
Quote:
Originally Posted by TheRealLenon
Hallöchen,
Ich kenne mich mit Java nicht 100%ig aus, bin jedoch der Meinung, das du den kompletten Computer-Pfad der Datei angeben musst.
Mit freundlichen Grüßen
TheRealLenon
|
Daran liegt es nicht  das ist soweit alles richtig
|
|
|
10/17/2015, 14:17
|
#4
|
elite*gold: 0
Join Date: May 2015
Posts: 700
Received Thanks: 444
|
Wenn ich printl durch println ersetze, und die {, } etwas anpasse, so dass ich es übersetzen kann, funktioniert das bei mir. Was genau geht bei dir nicht?
|
|
|
10/17/2015, 17:02
|
#5
|
elite*gold: 10
Join Date: May 2013
Posts: 1,350
Received Thanks: 963
|
Quote:
Originally Posted by algernong
Wenn ich printl durch println ersetze, und die {, } etwas anpasse, so dass ich es übersetzen kann, funktioniert das bei mir. Was genau geht bei dir nicht?
|
....-MacBook-Pro:.....$ javac Joo.java
^[[AJoo.java:45: error: 'else' without 'if'
} else {
^
1 error
|
|
|
10/17/2015, 17:06
|
#6
|
elite*gold: 0
Join Date: Sep 2008
Posts: 9,484
Received Thanks: 3,109
|
Quote:
Originally Posted by pioder
....-MacBook-Pro:.....$ javac Joo.java
^[[AJoo.java:45: error: 'else' without 'if'
} else {
^
1 error
|
Dann steht doch schon genau, was dein Fehler ist
Hier, der Code ist falsch, ist kein If statement...
Code:
synchronized (lock) {
lock.wait();
} else {
System.out.println("Haddeee Lan du willst keine Musik");
break;
}
|
|
|
10/17/2015, 17:50
|
#7
|
elite*gold: 0
Join Date: May 2015
Posts: 700
Received Thanks: 444
|
Quote:
Originally Posted by pioder
....-MacBook-Pro:.....$ javac Joo.java
^[[AJoo.java:45: error: 'else' without 'if'
} else {
^
1 error
|
Achso, ich dachte, der Code macht nur nicht das, was er soll (und hast ihn dann irgendwie falsch hier her kopiert).
Solche Fehler hast du einige, hier sind alle korrigiert:
Code:
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineEvent;
import java.io.File;
import java.util.Scanner;
public class Joo {
public static void main(String[] args) throws Exception {
//User Eingabe
Scanner scanner = new Scanner (System.in);
System.out.println("Drückste 1 sonst geschte weg mit 2");
while (true) {
System.out.println("Deine Eingabe");
String eingabe = scanner.nextLine();
// Eingabewert 1 spielt die musik ab
if (Integer.parseInt(eingabe) == 1) {
Object lock = new Object();
// Spielt die .Wav Datei ab
String soundFile = "/users/Mr.LongDong/desktop/Olexesh.wav";
try (AudioInputStream ais = AudioSystem.getAudioInputStream(new File(soundFile))){
Clip clip = AudioSystem.getClip();
clip.open(ais);
clip.addLineListener((e) -> {
if (e.getType() == LineEvent.Type.STOP) {
synchronized (lock) {
lock.notify();
}
}
});
clip.start();
}
synchronized (lock) {
lock.wait();
}
}else {
System.out.println("Haddeee Lan du willst keine Musik");
break;
}
}
}
}
Im Detail: System.out.printl gibt es nicht, sondern System.out.printl n.
Du hattest String .eingabe irgendwo. Nach dem synchronized Block hat ein } gefehlt, nach dem else Block hingegen war eins zu viel. Wenn du eine IDE nutzt kannst du Code automatisch einruecken lassen, dann fallen dir solche Fehler schneller auf.
Hier egal, aber im Allgemeinen solltest du statt notify() immer lieber notifyAll() verwenden. Denn notify() weckt ein beliebiges Thread auf, ohne dass du Einfluss nehmen kannst, welches. Also ist es immer besser, alle aufzuwecken, und unnoetig aufgewachte wieder schlafen zu legen (deswegen sollte wait() nur in einer Schleife vorkommen). Sobald mehrere Threads beteiligt sind, verursachen notify() und wait() ohne Schleife schnell Bugs. Hier aber egal, weil es ohnehin nur ein schlafendes Thread gibt.
|
|
|
10/17/2015, 18:25
|
#8
|
elite*gold: 10
Join Date: May 2013
Posts: 1,350
Received Thanks: 963
|
Quote:
Originally Posted by Menan
Dann steht doch schon genau, was dein Fehler ist
Hier, der Code ist falsch, ist kein If statement...
Code:
synchronized (lock) {
lock.wait();
} else {
System.out.println("Haddeee Lan du willst keine Musik");
break;
}
|
Bin relativ neu in Java und hab nicht viel Dunst davon...
Quote:
Originally Posted by algernong
Achso, ich dachte, der Code macht nur nicht das, was er soll (und hast ihn dann irgendwie falsch hier her kopiert).
Solche Fehler hast du einige, hier sind alle korrigiert:
Code:
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineEvent;
import java.io.File;
import java.util.Scanner;
public class Joo {
public static void main(String[] args) throws Exception {
//User Eingabe
Scanner scanner = new Scanner (System.in);
System.out.println("Drückste 1 sonst geschte weg mit 2");
while (true) {
System.out.println("Deine Eingabe");
String eingabe = scanner.nextLine();
// Eingabewert 1 spielt die musik ab
if (Integer.parseInt(eingabe) == 1) {
Object lock = new Object();
// Spielt die .Wav Datei ab
String soundFile = "/users/Mr.LongDong/desktop/Olexesh.wav";
try (AudioInputStream ais = AudioSystem.getAudioInputStream(new File(soundFile))){
Clip clip = AudioSystem.getClip();
clip.open(ais);
clip.addLineListener((e) -> {
if (e.getType() == LineEvent.Type.STOP) {
synchronized (lock) {
lock.notify();
}
}
});
clip.start();
}
synchronized (lock) {
lock.wait();
}
}else {
System.out.println("Haddeee Lan du willst keine Musik");
break;
}
}
}
}
Im Detail: System.out.printl gibt es nicht, sondern System.out.printl n.
Du hattest String .eingabe irgendwo. Nach dem synchronized Block hat ein } gefehlt, nach dem else Block hingegen war eins zu viel. Wenn du eine IDE nutzt kannst du Code automatisch einruecken lassen, dann fallen dir solche Fehler schneller auf.
Hier egal, aber im Allgemeinen solltest du statt notify() immer lieber notifyAll() verwenden. Denn notify() weckt ein beliebiges Thread auf, ohne dass du Einfluss nehmen kannst, welches. Also ist es immer besser, alle aufzuwecken, und unnoetig aufgewachte wieder schlafen zu legen (deswegen sollte wait() nur in einer Schleife vorkommen). Sobald mehrere Threads beteiligt sind, verursachen notify() und wait() ohne Schleife schnell Bugs. Hier aber egal, weil es ohnehin nur ein schlafendes Thread gibt.
|
Danke dir  , bin bloß dabei die Sprache zu erlernen und da sind solche Fehler ganz normal
|
|
|
10/18/2015, 09:54
|
#9
|
Moderator
elite*gold: 558
Join Date: Feb 2010
Posts: 6,547
Received Thanks: 1,418
|
Dann solltest du dir auch die Zeit nehmen und die Fehlermeldungen lesen. Java sagt eigentlich immer ziemlich deutlich was nicht stimmt. Da habe ich schon schlimmere Sprachen gesehen, bei denen es nur einen eher kryptischen Fehlercode gibt und die angegebene Zeile nur selten den Fehler enthält.
Der Fehler "'else' without 'if'" ist ziemlich leicht zu verstehen, frei übersetzt könnte man sagen "Du hast ein 'else', aber du hast kein 'if'". Ein 'else' muss immer ein 'if' haben, ein 'if' muss aber kein 'else' haben.
Und zu "ganz normal": Mir sind solche Fehler nicht ein mal am Anfang passiert, aber vielleicht bin ich ja auch nicht "normal".
|
|
|
10/18/2015, 12:31
|
#10
|
elite*gold: 10
Join Date: May 2013
Posts: 1,350
Received Thanks: 963
|
Quote:
Originally Posted by ComputerBaer
Dann solltest du dir auch die Zeit nehmen und die Fehlermeldungen lesen. Java sagt eigentlich immer ziemlich deutlich was nicht stimmt. Da habe ich schon schlimmere Sprachen gesehen, bei denen es nur einen eher kryptischen Fehlercode gibt und die angegebene Zeile nur selten den Fehler enthält.
Der Fehler "'else' without 'if'" ist ziemlich leicht zu verstehen, frei übersetzt könnte man sagen "Du hast ein 'else', aber du hast kein 'if'". Ein 'else' muss immer ein 'if' haben, ein 'if' muss aber kein 'else' haben.
Und zu "ganz normal": Mir sind solche Fehler nicht ein mal am Anfang passiert, aber vielleicht bin ich ja auch nicht "normal".
|
Du bist nicht normal  ich habe den Theard nach der Vorlesung erstellt und da war mein Kopf nicht mehr zum Denken zu gebrauchen
|
|
|
10/21/2015, 09:04
|
#11
|
elite*gold: 0
Join Date: Oct 2015
Posts: 44
Received Thanks: 8
|
Mit dem, dass ein else immer ein if enthalten muss, kann ich dir leider nicht zustimmen.
ein else muss nicht immer ein if enthalten.
Hier ein Ausschnitt aus meinem Code.. Dort funktioniert das else auch ohne das else if.
Code:
if (einfach.equals("Illegale Geschäfte")) {
JOptionPane.showMessageDialog(null,
"Du hast in illegale Geschäfte investiert. Dein Kapital erhöht sich um 6 Credits.");
JOptionPane.showMessageDialog(null, "Dein Kapital beträgt nun: " + (startergeldEinfach + 6));
++startergeldEinfach;
++startergeldEinfach;
++startergeldEinfach;
++startergeldEinfach;
++startergeldEinfach;
++startergeldEinfach;
}
else {
JOptionPane.showMessageDialog(null,
"Bitte wähle eins der zur Verfügung stehenden Investitionen aus.");
}
Mit freundlichen Grüßen
TheRealLenon
|
|
|
10/21/2015, 09:49
|
#12
|
Moderator
elite*gold: 558
Join Date: Feb 2010
Posts: 6,547
Received Thanks: 1,418
|
Quote:
Originally Posted by TheRealLenon
Mit dem, dass ein else immer ein if enthalten muss, kann ich dir leider nicht zustimmen.
|
Ich glaube da hast du mich falsch verstanden.
if ohne else, geht
if mit else, geht
Code:
if(...) {
} else {
}
else ohne if, geht nicht
Um noch kurz auf dein "else if" einzugehen ...
if mit else if, geht
Code:
if(...) {
} else if (...) {
}
else if ohne if, geht nicht
|
|
|
10/21/2015, 11:32
|
#13
|
elite*gold: 0
Join Date: Oct 2015
Posts: 44
Received Thanks: 8
|
Nun habe ich es verstanden. Der if block liegt in der Schleife. Da die schleife aber geschlossen wurde, geht ein else natürlich nicht. Ich dachte, das der else Block noch in der Schleife integriert war.
Grüße
TheRealLenon
|
|
|
10/21/2015, 11:37
|
#14
|
elite*gold: 0
Join Date: Jul 2011
Posts: 1,774
Received Thanks: 866
|
Quote:
Originally Posted by TheRealLenon
Nun habe ich es verstanden. Der if block liegt in der Schleife. Da die schleife aber geschlossen wurde, geht ein else natürlich nicht. Ich dachte, das der else Block noch in der Schleife integriert war.
Grüße
TheRealLenon
|
If/else hat nichts mit Schleifen zu tun.
Bei der If Bedingung geht es nur darum, dass WENN ein bestimmter Zustand eintritt, ein in den Klammern liegender Codeblock ausgeführt ist. ELSE bedeutet dann nichts anderes, dass falls die IF Bedingung nicht zutrifft, ANSONSTEN der in dem else Block geschriebene Code ausgeführt wird.
Code:
if (true) {
//do something
}
else {
//do something else
}
Das ein else dadurch nicht alleine stehen kann ist alleine im Sprachgebrauch schon logisch. Wenn es kein WENN gibt, gibt es auch kein ANSONSTEN.
|
|
|
10/21/2015, 14:35
|
#15
|
elite*gold: 0
Join Date: Oct 2015
Posts: 44
Received Thanks: 8
|
Quote:
Originally Posted by ComputerBaer
Dann solltest du dir auch die Zeit nehmen und die Fehlermeldungen lesen. Java sagt eigentlich immer ziemlich deutlich was nicht stimmt. Da habe ich schon schlimmere Sprachen gesehen, bei denen es nur einen eher kryptischen Fehlercode gibt und die angegebene Zeile nur selten den Fehler enthält.
Der Fehler "'else' without 'if'" ist ziemlich leicht zu verstehen, frei übersetzt könnte man sagen "Du hast ein 'else', aber du hast kein 'if'". Ein 'else' muss immer ein 'if' haben, ein 'if' muss aber kein 'else' haben.
Und zu "ganz normal": Mir sind solche Fehler nicht ein mal am Anfang passiert, aber vielleicht bin ich ja auch nicht "normal".
|
Quote:
Originally Posted by XYZ-Cannon
If/else hat nichts mit Schleifen zu tun.
Bei der If Bedingung geht es nur darum, dass WENN ein bestimmter Zustand eintritt, ein in den Klammern liegender Codeblock ausgeführt ist. ELSE bedeutet dann nichts anderes, dass falls die IF Bedingung nicht zutrifft, ANSONSTEN der in dem else Block geschriebene Code ausgeführt wird.
Code:
if (true) {
//do something
}
else {
//do something else
}
Das ein else dadurch nicht alleine stehen kann ist alleine im Sprachgebrauch schon logisch. Wenn es kein WENN gibt, gibt es auch kein ANSONSTEN.
|
Das war mir klar.. Nur das mit dem ein else kann nicht alleine stehen, hat mich total verwirrt..
|
|
|
 |
Similar Threads
|
[Root]Setting.lua fehler aber Fehler nicht zu beheben??
08/09/2011 - Metin2 Private Server - 5 Replies
Richte für jemanden den root ein, aber bei dem fehler bin ich jetzt selber an meine grenzen gekommen.
Folgender Fehler kommt beim starten:
http://www.fotos-hochladen.net/uploads/unbenan11n tij3uvlnr5d.png
Die syserr daneben gehört dazu, die Setting.lua habe ich schon durch getauscht, kommt aber immer noch der Fehler :confused:
Datenbank auch schon getauscht, aber was ist dieses:
|
Infinite Aion: Fehler (1024) Fehler beim initialisieren des Spiels
06/09/2011 - Aion Private Server - 5 Replies
Hi Leute,
ich hab ein Probem mit AION:
jedesmal wenn ich starte, egal ob mit dem NCSoft Launcher oder mit dem Infinite Aion Launcher kommt die Meldung Fehler beim initialisieren des Spiels...
Hab schon alle möglichen Sprachkombinationen durchprobiert, da es überall heißt man soll Region und Sprache beim NCSoft Launcher ändern und dann gehts...
Alles probiert, und siehe da: geändert hat sich nichts... Immer noch der Fehler 1024...
wäre nett, wenn mir da jemand helfen könnte und auch...
|
Fehler : java.net.socet.exception:connection reset fehler bitte um hilfe
12/21/2010 - Minecraft - 9 Replies
Hab denn java.net.socet.exception:connection reset fehler immer und immer wieder
:(
könnt ihr mir dabei vill helfen? :)
LG DieVerrückteMango =)
|
All times are GMT +2. The time now is 21:40.
|
|