Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Java
You last visited: Today at 21:40

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Fehler :S

Discussion on Fehler :S within the Java forum part of the Coders Den category.

Reply
 
Old   #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[] argsthrows 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;
                
        
                    }
                }
            }
        }
    } 
pioder is offline  
Old 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
TheRealLenon is offline  
Old 10/17/2015, 11:18   #3
 
elite*gold: 10
Join Date: May 2013
Posts: 1,350
Received Thanks: 963
Quote:
Originally Posted by TheRealLenon View Post
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
pioder is offline  
Old 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?
algernong is offline  
Old 10/17/2015, 17:02   #5
 
elite*gold: 10
Join Date: May 2013
Posts: 1,350
Received Thanks: 963
Quote:
Originally Posted by algernong View Post
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
pioder is offline  
Old 10/17/2015, 17:06   #6


 
Menan's Avatar
 
elite*gold: 0
The Black Market: 169/0/0
Join Date: Sep 2008
Posts: 9,484
Received Thanks: 3,109
Quote:
Originally Posted by pioder View Post
....-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;        
                    }
Menan is offline  
Thanks
1 User
Old 10/17/2015, 17:50   #7
 
elite*gold: 0
Join Date: May 2015
Posts: 700
Received Thanks: 444
Quote:
Originally Posted by pioder View Post
....-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.println.
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.
algernong is offline  
Thanks
1 User
Old 10/17/2015, 18:25   #8
 
elite*gold: 10
Join Date: May 2013
Posts: 1,350
Received Thanks: 963
Quote:
Originally Posted by Menan View Post
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 View Post
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.println.
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
pioder is offline  
Old 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".
ComputerBaer is offline  
Thanks
3 Users
Old 10/18/2015, 12:31   #10
 
elite*gold: 10
Join Date: May 2013
Posts: 1,350
Received Thanks: 963
Quote:
Originally Posted by ComputerBaer View Post
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
pioder is offline  
Old 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
TheRealLenon is offline  
Old 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 View Post
Mit dem, dass ein else immer ein if enthalten muss, kann ich dir leider nicht zustimmen.
Ich glaube da hast du mich falsch verstanden.


Um noch kurz auf dein "else if" einzugehen ...

ComputerBaer is offline  
Old 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
TheRealLenon is offline  
Old 10/21/2015, 11:37   #14
 
XYZ-Cannon's Avatar
 
elite*gold: 0
Join Date: Jul 2011
Posts: 1,774
Received Thanks: 866
Quote:
Originally Posted by TheRealLenon View Post
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.
XYZ-Cannon is offline  
Old 10/21/2015, 14:35   #15
 
elite*gold: 0
Join Date: Oct 2015
Posts: 44
Received Thanks: 8
Quote:
Originally Posted by ComputerBaer View Post
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 View Post
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..
TheRealLenon is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.