1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Java IO-classen nicht erkannt?

    • Frage
  • smo
  • 12. März 2004 um 12:31
  • Unerledigt
  • smo
    4
    smo
    Mitglied
    Punkte
    170
    Beiträge
    29
    • 12. März 2004 um 12:31
    • #1

    Ich möchte, lt. Beschreibung-Java Buch "Sprechen Sie Java - Einführung in das systematische Programmieren", mein Programm in einem Editor schreiben und mit der Eingabeaufforderung compilieren und ausführen.

    Zum Buch gibt es eigene IO-classen, welche im selben Verzeichnis abgelegt sind in dem auch die zu comilierenden *.java Dateien liegen (soll lt. Beschreibung so sein).

    In der cmd bekomme ich aber immer Fehlermeldungen. Ich denke, dass die IO-classen nicht erkannt werden.

    Bitte um Hilfe, ich kenne mich wirklich nicht mehr aus!


    cmd:[indent]Microsoft Windows 2000 [Version 5.00.2195]
    (C) Copyright 1985-2000 Microsoft Corp.
    C:\Dokumente und Einstellungen\Administrator>cd c:\java

    C:\Java>dir
    Datenträger in Laufwerk C: hat keine Bezeichnung.
    Datenträgernummer: 44AF-46BC

    Verzeichnis von C:\Java

    12.03.2004 11:03 <DIR> .
    12.03.2004 11:03 <DIR> ..
    12.03.2004 10:27 168 anyone.java
    12.03.2004 11:02 261 HelloWorldApp.java
    06.02.2004 07:46 4.000 In.class
    06.02.2004 07:09 10.226 In.java
    04.03.2004 17:50 <DIR> Neuer Ordner
    06.02.2004 07:09 2.080 Out.class
    06.02.2004 07:09 3.727 Out.java
    6 Datei(en) 20.462 Bytes
    3 Verzeichnis(se), 26.470.354.944 Bytes frei

    C:\Java>javac anyone.java
    anyone.java:4: cannot resolve symbol
    symbol : variable Out
    location: class anyone
    Out.print("Typ a number: ");
    ^
    anyone.java:6: cannot resolve symbol
    symbol : variable In
    location: class anyone
    i=In.readInt();
    ..^
    anyone.java:9: cannot resolve symbol
    symbol : variable Out
    location: class anyone
    Out.println(i);
    ^
    3 errors

    C:\Java>



    [/indent]

  • Kongo
    6
    Kongo
    Mitglied
    Punkte
    295
    Beiträge
    44
    • 12. März 2004 um 13:00
    • #2

    Post mal den Code von anyone.java dann gehts vielleicht besser den Fehler zu finden.

    :thumb: Geschrieben nach der alten, neuen und zukünftigen Rechtschreibung! :thumb:

  • Sysmaniac
    6
    Sysmaniac
    Mitglied
    Reaktionen
    1
    Punkte
    301
    Beiträge
    53
    • 12. März 2004 um 13:14
    • #3

    Hi smo,

    Versuch mal

    Code
    javac -classpath "c:\java" anyone.java

    mfg
    sysmaniac

    Any sufficiently advanced technology is indistinguishable from magic.
    Arthur C. Clarke

  • smo
    4
    smo
    Mitglied
    Punkte
    170
    Beiträge
    29
    • 12. März 2004 um 16:50
    • #4

    Also der Inhalt von anyone.java ist äußerst simpel.:D

    class anyone {
    public static void main(String[] args) {
    int i;
    Out.print("Typ a number: ");

    i=In.readInt();
    i=++i;
    i=i++;
    Out.println(i);

    }
    }

    Ich möchte damit herausfinden ob es stimmt dass x++ und ++x wiklich die selbe Funktion haben, wenn man Sie als einzelne Zuweisung verwendet.

    Im Eclipse funktioniert es nämlich nicht (x++ hat keine Wirkung, wärend ++x funktioniert).

    Die selben Fehlermeldungen erhalte ich bei jedem Programm welches diese IO-classen verwendet.
    Verwende ich die Standard-classen von Java funktioniert alles normal.


    Versuch mal
    Code:
    javac -classpath "c:\java" anyone.java
    Danke Sysmaniak, war 'n volltreffer.

    Das trage ich warscheinlich jetzt unter den Umgebungsvariablen unter Classpath nach oder liege ich falsch?

  • Wings-of-Glory
    28
    Wings-of-Glory
    Mitglied
    Reaktionen
    105
    Punkte
    8.305
    Beiträge
    1.573
    • 12. März 2004 um 18:17
    • #5
    Zitat

    Das trage ich warscheinlich jetzt unter den Umgebungsvariablen unter Classpath nach


    ja .

    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.» 

    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

  • Chris
    5
    Chris
    Mitglied
    Punkte
    225
    Beiträge
    45
    • 13. März 2004 um 02:09
    • #6

    hi,

    Zitat von smo


    class anyone {
    ...
    i=++i;
    i=i++;
    ...
    }

    Alles anzeigen

    ich glaube, du hast diesen ++ operator falsch verstanden. der erhöht nämlich die angegebene variable von selbst, die zuweisung dabei ist unnötig. ob du ++i; oder i++; als einzelnes statement ausführst, ist egal.
    bei "i=++i" sieht die sache so aus, dass i zuerst erhöht wird, der neue wert wird dann noch einmal an i zugewiesen (sinnlos), wobei hingegen bei "i=i++" i erst nach dem auslesen inkrementiert wird. dabei wird allerdings durch die zuweisung der inkrementierte wert wieder durch den originalwert überschrieben (also es ändert sich nichts).

    hi, i'm a signature virus. copy me into your signature to help me spread.

  • smo
    4
    smo
    Mitglied
    Punkte
    170
    Beiträge
    29
    • 13. März 2004 um 12:54
    • #7

    Zuerst einmal Danke für eure Hilfe, ihr habt mir sehr geholfen.:thumb:

    Eine letzte Frage habe ich noch zum Punkt classpath.

    Zitat von Wings-of-Glory


    Quote:
    Das trage ich warscheinlich jetzt unter den Umgebungsvariablen unter Classpath nach.

    ja .

    Wenn ich diesen Eintrag in den Umgebungsvariablen mache hat sich das Problem für dieses Verzeichnis erledigt. Lt. Buch sollten die classen immer erkannt werden, wenn sie sich im selben Verzeichnis befinden wo die zu compilierende Datei liegt.
    Kann man das auch irgenwo festlegen? :confused:

  • hal
    32
    hal
    Mitglied
    Reaktionen
    52
    Punkte
    11.122
    Beiträge
    2.208
    • 13. März 2004 um 13:20
    • #8

    ich kenne keine Klasse namens java.io.Out oder java.io.In... Vielleicht meinst du java.lang.System.out und java.lang.System.in?

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • smo
    4
    smo
    Mitglied
    Punkte
    170
    Beiträge
    29
    • 13. März 2004 um 13:38
    • #9

    Nein, diese classen gibt es wirklich.
    Zum Buch "Sprechen Sie Java" von Hans Peter Mössenböck gibt es diese IO-classen zum download auf http://www.ssw.uni-linz.ac.at/Misc/JavaBuch/.
    Diese classen sind eigens für das Buch definiert. Leider ist die Einbindung der classen nicht so trivial wie beschrieben.

  • hal
    32
    hal
    Mitglied
    Reaktionen
    52
    Punkte
    11.122
    Beiträge
    2.208
    • 13. März 2004 um 13:59
    • #10

    ahso. jar-file in ${JAVA_HOME}/lib/ext schmeißen, und dann mittels import einbinden sollte alles sein, was notwendig ist.

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • smo
    4
    smo
    Mitglied
    Punkte
    170
    Beiträge
    29
    • 13. März 2004 um 14:21
    • #11
    Zitat von hal

    ahso. jar-file in ${JAVA_HOME}/lib/ext schmeißen, und dann mittels import einbinden sollte alles sein, was notwendig ist.

    Ich habe nur .java und .class Dateien, wie komme ich jetzt zu .jar?

    Ich verwende J2EE von Sun, könnte da der Pfad so aussehen?
    ${Sun}\AppServer\jdk\jre\lib\ext

    Java Home würde ich so intrpretieren, dass das Verzeichnis auch den Ordner \bin mit der Java.exe enthält und dieser befindet sich im \jre und im \jdk Verzeichnis.
    Im \jdk Verzeichnis habe ich zwar auch einen \lib Ordner der hat aber ein \ext Verzeichnis.

  • hal
    32
    hal
    Mitglied
    Reaktionen
    52
    Punkte
    11.122
    Beiträge
    2.208
    • 13. März 2004 um 14:24
    • #12

    ich sprech vom jar-file von dem Buch. Falls das auch alles class-files sind, musst du die nur in das Verzeichnis, wo dein source-file ist, dazuschmeißen (und dann ist import auch net notwendig).

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • smo
    4
    smo
    Mitglied
    Punkte
    170
    Beiträge
    29
    • 13. März 2004 um 14:30
    • #13

    Und da sind wir auch schon wieder am Anfang, denn die .class und .java IO.Dateien liegen im Verzeichnis. Jedoch muß ich im Pfad immer den Zusatz -classpath angeben, weil die classen nicht von alleine erkannt werden.

  • hal
    32
    hal
    Mitglied
    Reaktionen
    52
    Punkte
    11.122
    Beiträge
    2.208
    • 13. März 2004 um 14:34
    • #14

    check: im File Out.java steht oben class Out { und kein package-befehl? . ist immer implizit im classpath.

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • smo
    4
    smo
    Mitglied
    Punkte
    170
    Beiträge
    29
    • 13. März 2004 um 14:40
    • #15

    ????? kann ich nicht verstehen ?????

  • Wings-of-Glory
    28
    Wings-of-Glory
    Mitglied
    Reaktionen
    105
    Punkte
    8.305
    Beiträge
    1.573
    • 13. März 2004 um 15:07
    • #16

    nur kurze frage nebenbei...
    wozu brauchst du diese komischen Klassen?
    der dokumentation der klassen nach zu urteilen, gibts diese funktionen eigentlich eh schon in java.

    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.» 

    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

  • hal
    32
    hal
    Mitglied
    Reaktionen
    52
    Punkte
    11.122
    Beiträge
    2.208
    • 13. März 2004 um 15:21
    • #17

    wog: Warum hat EPROG seine eigenen Ausgabeklassen, warum verwendet R. Stevens: Unix Network Programming seine eigenen Netzwerkfunktionen? Ich glaub das hat einfach irgendwas mit einem ego-Trip zu tun.

    smo: wenn diese Dinge zutreffen, die ich gefragt hab, sollte es keine Probleme geben.

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • smo
    4
    smo
    Mitglied
    Punkte
    170
    Beiträge
    29
    • 13. März 2004 um 15:40
    • #18

    Um die Übungen aus dem Buch machen zu können die ja auf diesen classen aufgebaut sind, ohne die komplette architektur von Java in 3 Wochen können zu müssen.

    So siehts aus mit den classen vom Buch:
    public class SecToTime {

    public static void main(String[] args) {

    int e; //character input stream
    int d=0; //Days
    byte h=0; //Hours
    byte m=0; //Minutes
    byte s=0; //Seconds


    Out.print("Type a number: "); //output on the screen
    e=In.readInt();
    s= (byte)(e%60); //calculate number of secondes
    m= (byte)((e-s)/60%60); //calculate number of minutes
    h= (byte)((e-s-m*60)/60/60%24); //calculate number of hours
    d= ((e-s-m*60)/60/60/24);

    System.out.println("Time: "+e+"sec = " +d+"days "+h+"hrs. "+m+"min. "+s+"sec."); //outprint of results
    }
    }



    So sieht es aus wenn es richtig(?) ist:

    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.BufferedReader;
    public class SecToTime {
    public static void main(String[] args) {

    int e; //character input stream
    int d=0; //Days
    byte h=0; //Hours
    byte m=0; //Minutes
    byte s=0; //Seconds


    System.out.print("Type a number: "); //output on the screen
    InputStreamReader isr= new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr);
    try{

    String sData = br.readLine();

    e= Integer.valueOf(sData); intValue();
    s= (byte)(e%60); //calculate number of secondes
    m= (byte)((e-s)/60%60); //calculate number of minutes
    h= (byte)((e-s-m*60)/60/60%24); //calculate number of hours
    d= ((e-s-m*60)/60/60/24);

    System.out.println("Time: "+e+"sec = " +d+"days "+h+"hrs. "+m+"min. "+s+"sec."); //outprint of results
    }
    catch(IOException e1){
    }
    }
    }

  • smo
    4
    smo
    Mitglied
    Punkte
    170
    Beiträge
    29
    • 13. März 2004 um 15:49
    • #19
    Zitat

    check: im File Out.java steht oben class Out { und kein package-befehl? . ist immer implizit im classpath.

    seit diesem statement kann ich dir nicht mehr folgen.
    Was heißt das?

    Diese eigenen classen sollen das lernen unterstützen, weil man nicht alle eingaben machen muß die wirklich notwendig währen.
    Dadurch kann man sich auf den primären Teil konzentrieren um diesen zu verstehen.

  • smo
    4
    smo
    Mitglied
    Punkte
    170
    Beiträge
    29
    • 13. März 2004 um 15:54
    • #20

    Freut mich dass ich auch mal was erklären kann.:coolsmile :verycool:

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung