Anfängerproblem

brasilian

Grünschnabel
Hallo,

ich bin gerade dabei Java zu erlernen. Da ich aber ein blutiger Anfänger in dieser Sprache bin, habe ich schon mit den ersten Problemen zu kämpfen.

Ich bin gewohnt, von C oder Assembler in einem "einfachen" editor zu programmieren.

Bei Java hab ich erfahren, dass die Dinge etwas anders stehen.

Ich hab mir von Java-Sun dass j2sdk 1.4.1 heruntergeladen. Anschließend brauchte ich natürlich auch einen richtigen "Editor" (IDE).

Ich hab mir dann denn "Java-Editor" (http://www.bildung.hessen.de/abereich/inform/skii/material/java/editor.htm)
heruntergezoggen.

Nun stelle ich aber fest, dass der Compiler seine Arbeit nicht richtig macht.

Ich erhalte immer Fehlermeldungen, sogar wenn ich fertige Programme aus einem Lehrbuch verwende. Ich erhalte aber meistens immer dieselbe Meldung.

Hier nun ein Beispiel:

Quellcode:

public class T04
{
public static void main(String[] args) throws Exception
{
System.out.println("hello, who are you?");
String name=new BufferedReader(new InputStreamReader(System.in)).readLine();
System.out.println("hi "+name);
System.out.println("bye "+name);
}
}

Fehlermeldung:

T04.java:6: cannot resolve symbol
symbol: class BufferredReader
location: class T04
string name = new BufferedReader(new InputStreamReader(System.in)).readLine();
^
T04.java:6: cannot resolve symbol
symbol: class InputStreamReader
location: class T04
string name = new BufferedReader(new InputStreamReader(System.in)).readLine();
^

2 Errors




Ich weiß leider nicht was ich falsch mache.

Ich vermute aber, dass dies mit diesem "Setpath" oder so zusammen hängt. Kann das sein und was genau ist, bzw. wie würde ich diesen Fehler beheben können

Über jede Art von Hilfe würde ich mich sehr freuen.

Vielen Dank im Vorraus

Brasilian
 

Thomas Darimont

Erfahrenes Mitglied
Servus!

So wie es ausschaut hast du string anstatt String geschrieben ... korrigier das mal , dann sollte es funktionieren ...

Code:
import java.io.*;

public class T04{

	public T04(){ }
	
	public static void main(String[] args){
	
		System.out.println("TEST");
		String str = null;
		try{
			str = new BufferedReader(new InputStreamReader(System.in)).readLine();
		}catch(IOException ioe){ ioe.printStackTrace(); }
		if ( str != null )
		System.out.println("You typed : " + str);
	
	}
}

Gruß Tom
 

chibisuke

Erfahrenes Mitglied
hmm imports vergessen?

du musst jede klasse die du benutzen willst zuerst importieren wenn die nicht im selben paket drinen is...

schreib ganz am anfang (vor dem class) einfach mal ein

import java.io.*;

das sollte dein problem eigendlich beheben
 

brasilian

Grünschnabel
Danke !

Ihr beide hattet Recht. Es fehlt wirklich die Datei import.

Ich bin momentan Java aus einem Buch am erlernen und dort stand nichts von import, find ich ganz schön dumm ...

Kann ich dir Import-Datein mit sogenannten "Bibliotheken in C" vergleichen ?

Und gibt es etwa einige Standard-Imports die ich immer angeben sollte ? Oder woher weiß ich welchen Import ich brauche ?

Vielen Dank nochmal

Gruß

Brasilian
 

Thomas Darimont

Erfahrenes Mitglied
Servus!

Nicht ganz ....

"C- Importe " #include <header.h> binden die Datei physisch in die Quellcode Datei ein.

Mit "import package.unterpackage.*" erweiterst du nur den "Namensraum" für Klassen die du in deinem Programm verwendest. Standardmäßig "sieht" dein Javaprogramm nur die Klassen aus dem Package java.lang.* ... Wenn du Klassen aus anderen Packages verwenden willst musst du den Namensraum erweitern, sprich das Package importieren, damit der Compiler auch weis, wo er die Klassendefinition zu der verwendeten Klasse findet. ...

Gruß Tom
 

chibisuke

Erfahrenes Mitglied
und welche es gibt findest du am einfachsten heraus wenn du das src.zip in einem JDK verzeichnis mal genauer untersuchst.. die verzeichnise stehen dabei für package namen, die .java dateien für classnamen.. wobei die letzte ebene durch * ersetzt werden kann...

also wirst du in einem verzeichnis java/io/ alle IO routinen für java finden ;-)
und dafür musst du java.io.* einbinden...

du kannst anstatt des imports auch wenn du eine klasse nur ein einziges mal brauchst auch den vollen namen der klasse benutzen
also anstat

import java.lang.*;
String myString = new String();

kannst du schreiben
java.lang.String myString = new java.lang.String();