1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

Probleme mit Java

Dieses Thema im Forum "Andere Software" wurde erstellt von John, 02.09.09.

  1. John

    John Macoun

    Dabei seit:
    08.06.09
    Beiträge:
    119
    Guten Abend,
    heute haben wir in der Schule mit Java angefangen.
    Eigentlich recht einfach, wobei wir eigentlich noch nichts richtiges gemacht haben.
    Zum Einstieg hat uns der Lehrer ein paar Grundlagen gezeigt, die wir Zuhause ausprobieren sollen.
    Zunächst war ich der Meinung, das dies kein Problem sein sollte doch Zuhause angekommen,
    bin ich auf ein paar Fehler gestoßen.
    Zunächst ersteinmal der Quellcode:

    Code:
    package sequenz;
    import java.io.Console;
    import java.io.IOException;
    
    public class ErstesProgramm {
    
    	/**
    	 * @param args
    	 * @throws IOException
    	 */
    	public static void main(String[] args) throws IOException {
    		// Deklaration
    		int alter = 0;
    		double groesse = 170.8;
    		char geschlecht = 'm';
    		boolean verheiratet = false;
    
    		// Programmkopf
    		Console.println("\t\t************************************");
    		Console.println("\t\t# Name: John                 #");
    		Console.println("\t\t# Problem: Erstes Progamm          #");
    		Console.println("\t\t# Datum: 02.09.2009                #");
    		Console.println("\t\t************************************");
    
    		// Eingabe
    		Console.println("# Eingabe:");
    		Console.print("\tDein Alter = ");
    		alter = Console.readln();
    
    		// Verarbeitung
    		alter=alter+10;
    		
    		// Ausgabe
    		System.out.println("# Ausgabe:");
    		System.out.println("# Ihr Alter: " + alter);
    		System.out.println("# Ihre Größe: " + groesse);
    		System.out.println("# Ihr Geschlecht: " + geschlecht);
    		System.out.println("# Verheiratet: " + verheiratet);
    
    		// Programmende
    		System.out.println("\t\t************************************");
    		System.out.println("\t\t#      P R O G R A M M E N D E     #");
    		System.out.println("\t\t************************************");
    	}
    }
    
    Führe ich das ganze dann als Java Application aus, bekomme ich folgende Erros:

    Code:
    Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    	The method println(String) is undefined for the type Console
    	The method println(String) is undefined for the type Console
    	The method println(String) is undefined for the type Console
    	The method println(String) is undefined for the type Console
    	The method println(String) is undefined for the type Console
    	The method println(String) is undefined for the type Console
    	The method print(String) is undefined for the type Console
    	The method readln() is undefined for the type Console
    
    	at sequenz.ErstesProgramm.main(ErstesProgramm.java:19)
    
    Ich habe x-mal nachgeschaut, ich habe den Code 1 zu 1 aus der Schule übernommen,
    und dort hat es funktioniert. Ich denke, dass es irgendwas mit meiner Java-Version zu
    tun haben könnte, doch weiß ich leider nicht wie ich das Problem beheben könnte.
    Zur Not, könnte ich das ganze nochmal auf meiner Dose ausprobieren,
    wozu ich eigentlich keine Lust habe, da das Arbeiten am Mac doch um einiges entspannter ist ;)
    So far
    John
     
  2. Nighthawk

    Nighthawk Linsenhofener Sämling

    Dabei seit:
    16.12.06
    Beiträge:
    2.558
    Soll wohl eher System.out.println() bzw. System.out.print() bzw. System.in.readln() heissen. Console.bla ist meiner Meinung nach nicht in der Standard-API und wird deswegen wohl nur unter Windows funktionieren.
    Mit der oben genannten Methode funktioniert es auf jeden Fall und so macht man es normalerweise auch.

    EDIT: Okay, Bezierkurve hat Recht. Das gibt's seit JRE 1.6 und hat nichts mit Windows zu tun.
     
  3. bezierkurve

    bezierkurve Danziger Kant

    Dabei seit:
    12.06.05
    Beiträge:
    3.861
    JavaDoc sagt:
    .

    Und wenn du im Terminal „java -version“ wirst du vermutlich rausfinden, dass die JRE 1.5 aktiv ist. Soweit ich weiß, kannst du die Standard-JRE im Dienstprogramm „Java-Einstellungen.app“ ändern.

    Oder falls du Eclipse oder eine andere IDE nutzt, direkt in den dortigen Programm-/Projekteinstellungen.
     
  4. John

    John Macoun

    Dabei seit:
    08.06.09
    Beiträge:
    119
    Hmm, komisch, wenn ich im Terminal "java -version" eingebe, kommt vollgendes bei raus:
    Code:
    java version "1.6.0_15"
    Java(TM) SE Runtime Environment (build 1.6.0_15-b03-219)
    Java HotSpot(TM) 64-Bit Server VM (build 14.1-b02-90, mixed mode)
    
    Das müsste ja dann eigentlich heißen, dass auch "console.println()" funktionieren müsste,
    wenn ich mich nicht irre.
     
  5. bezierkurve

    bezierkurve Danziger Kant

    Dabei seit:
    12.06.05
    Beiträge:
    3.861
    Mmmmh. Ich habe mir gerade noch mal deinen Code von oben angechaut, aber der passt ja gar nicht zur Console-API. Sicher, dass ihr die java.io.Console genutzt habt?
     
  6. John

    John Macoun

    Dabei seit:
    08.06.09
    Beiträge:
    119
    Ich bin mir eigentlich ziemlich sicher. Wir nutzen in der Schule auch Eclipse,
    nur hat die Windows Version. Wir haben zunächst den Code geschrieben.
    Dann hat uns der Lehrer erklärt das wir bei "Console" einen Error erhalten,
    aber den einfach durch Quick-Fix bzw. den Import beheben können, dass gleiche
    habe ich dann auch Zuhause gemacht. Code geschrieben und bei "Console", Quick-Fix benutzt.
    Was mir eben aufgefallen ist, als ich den Code aus der Schule nochmal durchgegangen bin, dass
    "import java.io.Console;" gar nicht mehr aufgelistet ist. Ich habe es auch einmal versucht dies
    wegzulassen, doch dann taucht der Error wieder auf.
     
  7. Guy.brush

    Guy.brush Weißer Winterkalvill

    Dabei seit:
    15.12.08
    Beiträge:
    3.544
    Ohne jetzt den Code genauer betrachtet zu haben, sag ich mal Folgendes dazu:
    Wie bezierkurve schon gesagt hat, musst du es auch in Eclipse umstellen, wenn du es benutzt. Es kann trotzdem noch die 1.5.0 Version verwenden...
    Einfach bei Installed JREs und Compiler einstellen bzw. hinzufügen.

    [​IMG]
     
  8. John

    John Macoun

    Dabei seit:
    08.06.09
    Beiträge:
    119
    Habe eben mal nachgeschaut, es war alles schon auf 1.6 gestellt.

    [​IMG]

    [​IMG]

    Da ich mit dem "Consolen-Problem" nicht weiterkomme, habe ich ersteinmal
    alle Console.println() durch System.out.println() ersetzt.
    Dannach hat alles, auf den ersten Blick auch funktioniert, doch gab es ein Problem,
    die Ausgabe klappt soweit, doch wird das Alter irgendwie nicht korrekt übernommen:

    Quellcode:

    Wegen dem "Consolen-Problem" werde ich morgen mal mit meinem Lehrer sprechen.
     
  9. Guy.brush

    Guy.brush Weißer Winterkalvill

    Dabei seit:
    15.12.08
    Beiträge:
    3.544
    das Problem ist, dass System.in.read() bytes einliest, dadurch wir der ASCII Wert von 5 (= 53) ausgegeben.
    Ich empfehle dir die Klasse Scanner, Beispiel:

    Code:
    
    import java.util.Scanner;
    
    public class Beispiel{
    
    	public static void main(String[] args) {
    		
    	Scanner sc = new Scanner(System.in);
    	int alter = 0;
    	double groesse = 0.0;
    
    	if(sc.hasNextInt()) alter = sc.nextInt();
    	System.out.println(alter);
            if(sc.hasNextDouble()) groesse = sc.nextDouble();
            System.out.println(groesse);
    
            //usw...
            }
    
    }
    
    
     
    #9 Guy.brush, 03.09.09
    Zuletzt bearbeitet: 03.09.09
    John gefällt das.
  10. John

    John Macoun

    Dabei seit:
    08.06.09
    Beiträge:
    119
    Vielen Dank :)
     

Diese Seite empfehlen