IO Tools

Status
Nicht offen für weitere Antworten.

julianmertz

Mitglied
Hi
Ich habe gerade angefangen Java zu erlernen. Ich benutzte den JOE- Editor (java oriented editing). Ich komme leider bei dem Thema IO Tools überhaupt nicht weiter. Erstmal verstehe ich nicht wirklich was der Zweck von diesen IO Tools sein soll.
In meinem Lehrbuch steht, dass man damit Eingaben von der Tastatur aus machen kann. Ich habe die IO Tools heruntergeladen und habe in JOE auch den korrekten Pfad eingegeben. Mein Beispielprogramm sieht wie folgt aus:

import Prog1Tools.IOTools;

public class IOToolsTest {
public static void main (String[] args) {
int j ;
System.out.print("j = ");
j = IOTools.readInteger();

}
}

Ich kann dieses Programm problemlos compilieren und auch starten. Doch bei der Ausgabe steht dann:
j =

Ich kann aber überhaupt nichts eingeben in der Ausgabe. Es kommt dann noch so ein Java Fenster im MS Dos Format
, in dem ich auch nicht eingeben kann.

Was bringt mir also die Zeile:
j = IOTools.readInteger();

Weil wenn ich diese Zeile weglasse, bekomme ich exakt die selbe Ausgabe; nur dieses komische MS_DOS Fenster erscheint nicht.


Ich probiere jetzt schon seit 1 woche herauszufinden wie es geht; komme aber nicht weiter.
 

Ark

Top Contributor
Ohne dir oder dem Autor deines Lehrbuchs auf die Füße treten zu wollen: Vergiss diese Tools. ;)

Ark
 

0x7F800000

Top Contributor
julianmertz hat gesagt.:
[...] IO [...] 1 woche [...]
um dem Autor mal mit voller Absicht auf die Füße zu treten: vergiss diese "tools", vergiss das merkwürdige buch, hol dir irgendeine alt bewährte ide oder übe ein bisschen mit dem simplen text editor, soll insbesondere am anfang ganz gut disziplinieren, was kleine tippfehler angeht. ;)
 

julianmertz

Mitglied
Also ich kann dieses Buch nicht vergessen, da es das offieziele Buch zu der Vorlesung ist. Ich muss in diesem Fach auch
eine Prüfung ablegen. Also ob ich wollte oder nicht, ich kann dieses Buch nicht vergessren.
Ich würde mich freuen, wenn jemand es probieren würde mir mit dem Problem weiterzuhelfen.
 

DocRandom

Top Contributor
..ä´hm wie wäre es mit:
Code:
int j = IOTools.readInteger();
Systen.out.println("j = " + j );
lg
Docrandom
 

0x7F800000

Top Contributor
julianmertz hat gesagt.:
Also ich kann dieses Buch nicht vergessen, da es das offieziele Buch zu der Vorlesung ist.
ja und? anscheinend ist hierzulande die mehrheit der Informatik-Lehrer/Profs im besten Fall ein wenig verträumt und nicht immer auf dem aktuelsten stand, oder im schlimssten Fall sind die leute völlig unzurechnungsfähig und gemeingefährlich, wie es in deinem fall zu sein scheint.
Also kann ich dir keine bessere Überlebensstrategie empfehlen, als schädliche vorschriften einfach zu ignorieren :toll:
Ich würde mich freuen, wenn jemand es probieren würde mir mit dem Problem weiterzuhelfen.
Und das stellst du wie vor? Dass hier einer in den Bücherladen rennt, und erstmal ein minderwertiges und verwirrendes Anfängerlehrbuch kauft, und sich dann den Kopf darüber zerbricht, warum der Autor dies und das mehr oder weniger miserabel erklärt hat? Um ein paar Buchstaben von der Konsole einzulesen, muss man absolut nichts neues erfinden, für alles gibt es in JavaSE eine fertige Lösung, in beliebig komfortablen Varianten. Wenn der Autor meint, irgendwelche rechteckigen Räder neuerfinden zu müssen, oder alles mit sinnfreien Wrappern vollzumüllen, ist das seine Sache. Eure Pflicht wäre nur, seine Bücher zu boykottieren.
 

julianmertz

Mitglied
DocRandom hat gesagt.:
..ä´hm wie wäre es mit:
Code:
int j = IOTools.readInteger();
Systen.out.println("j = " + j );
lg
Docrandom

Also ich habe es probiert, aber jetzt kommt nur noch das komische Fenster im Ms Dos Style. Bei Joe steht bei der Ausgabe jetzt gar nichts mehr.
 

Marco13

Top Contributor
Wenn ich mal raten darf: In JOE gibt es eine "Console", d.h. so eine TextArea wo die ganzen System.out.println's hingeschrieben werden. Dort kannst du aber sicher keine Eingaben machen. Dafür wirst du das Programm von Hand starten müssen, an der "Richtigen" MS-DOS-Konsole...
 

Marco13

Top Contributor
Um dich nicht mit dem Classpath rumschlagen zu müssen, am besten die IOTools-JAR ins gleiche Verzeichnis kopieren wie deine class-Dateien.
Dann
Start->Ausführen->"cmd" Eintippen->OK Klicken
In der Konsole:
c:
cd \Verzeichnis\Wo\Die\Class\Datei\Liegt
c:\Verzeichnis\Wo\Die\Java\Exe\Liegt\java IOToolsTest

Also z.B.
c:
cd \Develop\FirstProgram
c:\Programme\Java\jdk\bin\java IoToolsTest
 

0x7F800000

Top Contributor
ARadauer hat gesagt.:
mann wo bist du zur schule gegangen?
Fragst du dich gerade, ob die Strategie aufgegangen ist? Ja, bisher schon ;) Der Aufwand ist dann zwar insgesamt etwas höher, obwohl die Noten in manchen Fällen nicht unbedingt besser sind, doch dafür verliere ich nicht den Spaß am lernen.
Besonders in der Schule hat's bestens funktioniert. An der Uni klappt's bisher auch ganz gut, wobei bei manchen Fächern, wo man die vorlesung ignorieren, und stattdessen alles sich selbst mit den Büchern beibringen muss, mich schon frage, ob ich nicht einfach die uni wechseln sollte... :roll:
 

julianmertz

Mitglied
Marco13 hat gesagt.:
Um dich nicht mit dem Classpath rumschlagen zu müssen, am besten die IOTools-JAR ins gleiche Verzeichnis kopieren wie deine class-Dateien.
Dann
Start->Ausführen->"cmd" Eintippen->OK Klicken
In der Konsole:
c:
cd \Verzeichnis\Wo\Die\Class\Datei\Liegt
c:\Verzeichnis\Wo\Die\Java\Exe\Liegt\java IOToolsTest

Also z.B.
c:
cd \Develop\FirstProgram
c:\Programme\Java\jdk\bin\java IoToolsTest

Ich habe es versucht, doch es ging GAR NICHTS. Da steht meinstens, das der angegebene Pfad nicht gefunden wurde.
Könntest du mir es etwas genauer erklären wie man Progamme ohne JOE starten kann. Also wenn ich in JOE das Programm
eingebe, kommt auch so ein schwarzes Fenster,in das ich aber auch nichts eingeben kann.
 
G

Gast

Gast
Darf ich fragen was du studierst?

Einerseits vom "schwarzen Fenster" zu reden und andererseits programmieren zu müssen, das passt nicht zusammen.
 

Marco13

Top Contributor
julianmertz hat gesagt.:
Ich habe es versucht, doch es ging GAR NICHTS. Da steht meinstens, das der angegebene Pfad nicht gefunden wurde.
Könntest du mir es etwas genauer erklären wie man Progamme ohne JOE starten kann.
Das habe ich schon.

Schrittweise: Was passiert, wenn...
... du "das schwrze Fenster" aufgemacht hast?
... du "C:" eingetippt hast?
... du "cd Bla\Blubb" eingetippt hast?
...

(kann doch nicht so schwer sein....)
 

julianmertz

Mitglied
Hi
Also ich habe jetzt probiert das Programm über "Start->Ausführen->"cmd" Eintippen->OK Klicken"
zu starten und habe dann den Pfad der class Datei angegeben. ICh bekomme dann jedoch eine Fehlermeldung:
"Die folgende Datei kann nicht geöffnet werden:

Datei: IOToolsTest.class

Das Programm, mit dem Sie diese Datei öffnen möchten, muss bekannt sein, damit sie geöffnet
werden kann. Die Suche kann automatisch online erfolgen, oder Sie können manuell ein Programm
aus der Liste der auf dem Computer installierten Programme auswählen.

Wie möchten Sie vorgehen?

#Webdienst für die Suche nach dem richtigen Programm verwenden
#Programm aus einer Liste installierter Programme auswählen."


Und um noch mal auf dieses "schwarze fenster"zurück zu kommen, welches bei JOE erscheint,
wenn man etwas mit den IO tools macht. Dieses Fenster ist tatsächlich nur schwarz und man
kann dort auch nichts eingeben oder so. Man kann es eigentlich nur schließen.
 

trazzag

Bekanntes Mitglied
OMG

1. Du mußt natürlich erstmal zum richtigen Pfad navigieren, also dahin, wo die Datei liegt. [EDIT: ok, sorry: gerade gelesen, daß du diesen Schritt vollzogen hast...]
2. Das Ausführen der Klasse erfolgt dann durch die Anweisung "java KLASSENNAME" (OHNE .class)
--> Das Klassenname ersetzt du in deinem Fall natürlich durch IOToolsTest

3. Falls du noch keine Umgebungsvariable zu deiner Java-Installation gesetzt hast, mußt du dieses gegebenfalls vor Schritt 2 tun. Das machst du wie folgt:

set PATH=C:\Programme\Java\jdk1.6.0\bin;%PATH%

(den Pfad natürlich an dein Installationsverzeichnis anpassen)
 

julianmertz

Mitglied
Also ich habe es so gemacht wie es beschrieben wurde, jedoch bekomme ich jetzt wieder eine Fehlermeldung:

"Exception in thread "main" java.lang.NoClassDeFFOundError: IOToolsTest
Caused by: java.lang.ClassNotFoundException: IOtoolsTest
at java.net.URLClassLoader$1.run(Unknow Source)
at java.security.AcessController.doPriviledged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.findClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
 
G

Guest

Gast
Also erstmal zu der Sache bezüglich des Pfads. Ich habe zwar nicht so viel Ahnung, aber
dennoch glaube ich das ich den richtigen Pfad benutze, also den Pfad, wo die .class Datei
liegt. Sie liegt bei mir im Verzeichnis C:\Users\Admin\.
Wenn ich C:\Users\Admin\dir eingebe, zeigt der Computer ja an, was in dem Ordner enthalten ist.
Und meine class Datei wird auch aufgelistet. Deshalb glaube ich, ohne mir wirklich sicher
zu sein, dass ich den richtigen Pfad benutze.

Ich habe es jetzt mit java -cp .IOToolsTest probiert, jedoch wieder eine Fehlermeldung erhalten.
Diese Fehlermeldung ist zu lang, um sie hier abzutippen. Deshalb tippe ich lediglich den Anfang
und das Ende ab:

"Usage: java [-options] class [args...]
(to execute a class)
or java [-options] class [args...]
(to execute a jar file)
................................
.................................
.................................
...............................
...............................
................................
-splash:<imagepath>
show splash screen with specified image"



Falls es euch etwas bringen sollte, würde ich selbstverständlich die ganze Fehlermeldung
abtippen(ca. 50 Zeilen). Sagt mir dann einfach bescheid.
 

trazzag

Bekanntes Mitglied
Du hast einen simplen Fehler gemacht. Du mußt

java -cp . IOToolsTest

eintippen, statt

java -cp .IOToolsTest

wie von dir oben geschrieben. Also eine Leerstelle vor UND nach dem Punkt!
 

julianmertz

Mitglied
Das hier ist die erneute Fehlermeldung, die ich auch schon einmal hatte:


"Exception in thread "main" java.lang.NoClassDeFFOundError: IOToolsTest
Caused by: java.lang.ClassNotFoundException: IOtoolsTest
at java.net.URLClassLoader$1.run(Unknow Source)
at java.security.AcessController.doPriviledged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.findClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source"
 

trazzag

Bekanntes Mitglied
und du bist auch sicher, daß da eine *.class Datei und nicht nur die *.java drin liegt?
Im Zweifelsfall nochmal selber über die Konsole mit javac kompilieren!
 

julianmertz

Mitglied
trazzag hat gesagt.:
und du bist auch sicher, daß da eine *.class Datei und nicht nur die *.java drin liegt?
Im Zweifelsfall nochmal selber über die Konsole mit javac kompilieren!

Ja es sind beide Dateien in dem Verzeichnis. Es werden auch beide bei dem Befahl "dir" aufgelistet.
 
S

shad0w

Gast
Gib mal bitte in dem Verzeichnis ein: javap IOToolsTest
und schreib die Antwort hier rein.
 
S

shad0w

Gast
Ach ja, damit du nicht so viel Arbeit hast mit Abtippen, kannst du die Ausgabe auch in ein Textfile schreiben lassen:

javap IOToolsTest > output.txt

Und dann gibst du ein:

notepad output.txt

Dann kannst du das markieren, kopieren (strg+c) und hier einfügen (strg+v).
 
S

shad0w

Gast
Egal, dann schau mal bitte in die Sourcedatei, also IOToolsTest.java, ob da als erstes eine Package-Anweisung ist, also ob die Klasse in einem bestimmten Package ist. In welchem Package ist die Klasse?
 

julianmertz

Mitglied
Also das ist der Quelltext der Datei IOToolsTest.java




import Prog1Tools.IOTools;

public class IOToolsTest {
public static void main (String[] args) {
int j = IOTools.readInteger();
System.out.println("j = " + j );
}
}
 

trazzag

Bekanntes Mitglied
Du solltest den bin-Ordner deines JDK mal den Umgebungsvariablen hinzu fügen. Wie das geht? -> hier ein Auszug aus der JavaInsel:

Unter Windows XP aktivieren wir den Dialog Systemeigenschaften unter Start • Einstellungen • Systemsteuerung • System. Unter dem Reiter Erweitert wählen wir die Schaltfläche Umgebungsvariablen, wo wir anschließend bei Systemvariablen die Variable Path auswählen und mit Bearbeiten verändern – natürlich können statt der Systemvariablen auch die lokalen Benutzereinstellungen modifiziert werden; da gibt es Path noch einmal. Hinter einem Semikolon tragen wir den Pfad zum bin-Verzeichnis ein. Dann können wir den Dialog mit OK, OK, OK verlassen. War eine Eingabeaufforderung offen, bekommt sie von der Änderung nichts mit; ein neues Eingabeaufforderungsfenster muss geöffnet werden. Weitere Hilfen gibt die Datei http://tutego.com/go/installwindows.

Wenn du den Pfad jedes mal selbst setzen willst, geht das in deinem Fall über

set PATH=C:\Program Files\Java\jdk1.6.0_07\bin;%PATH%

Sobald du das gemacht hast, solltest du von überall Befehle wie javap oder javac aus der Konsole heraus aufrufen können.
 

julianmertz

Mitglied
Ich habe das schon ganz am Anfang gemacht, als ich angefangen habe mit JOE zu arbeiten. Das muss man machen,
um mit JOE arbeiten zu können. Also nochmal:
Ich kann mit JOE Java Programme schreiben und auch komplimieren. Ich kann diese Programme auch mit JOE starten und auf der JOE-Konsole werden mir dann die Ausgaben des Programmes gezeigt.
Das Problem sind die IO Tools, welche unter JOE nicht funktionieren. Ich muss diese JAVA-Programme nun anderst ausführen. Doch es gelingt mir einfach nicht. Ich probiere es jetzt schon seit einem Monat jeden Tag und trotz Eurer
Ratschläge, für die ich im Übringen sehr dankbar bin, funktioniert GAR NICHTS.
 

julianmertz

Mitglied
Ich habe das schon ganz am Anfang gemacht, als ich angefangen habe mit JOE zu arbeiten. Das muss man machen,
um mit JOE arbeiten zu können. Also nochmal:
Ich kann mit JOE Java Programme schreiben und auch komplimieren. Ich kann diese Programme auch mit JOE starten und auf der JOE-Konsole werden mir dann die Ausgaben des Programmes gezeigt.
Das Problem sind die IO Tools, welche unter JOE nicht funktionieren. Ich muss diese JAVA-Programme nun anderst ausführen. Doch es gelingt mir einfach nicht. Ich probiere es jetzt schon seit einem Monat jeden Tag und trotz Eurer
Ratschläge, für die ich im Übringen sehr dankbar bin, funktioniert GAR NICHTS.
 

0x7F800000

Top Contributor
julianmertz hat gesagt.:
Ich probiere es jetzt schon seit einem Monat jeden Tag und trotz Eurer
Ratschläge, für die ich im Übringen sehr dankbar bin, funktioniert GAR NICHTS.
bewundernswerte ausdauer, aber spätestens an dieser stelle sollte man sich doch mal fragen, ob man den Lehrer & den Autor des bescheurten Lehrbuches endlich mal zur Hölle schickt, und anfängt ganz normal java zu lernen, wie das die durchschnittsbürger normalerweise machen. :toll:

Dass dieser Autor meint, er könne zum thema IO in java irgendetwas neues und bahnbrechendes beitragen, ist angesichts der gigantischen Ausmaße der Java api imho eine frechheit. :bloed:
 
S

shad0w

Gast
Funktioniert denn jetzt endlich:

javap IOToolsTest

??

Was ist die Ausgabe?
 

Ark

Top Contributor
Ich schließe mich Andrey an: Vergiss den ganzen Special-I/O-Solutions-Krempel am besten so schnell wie möglich. Lerne lieber die Basics anhand "normaler" API. ;)

Ich kenne viele Kollegen, die anscheinend völlig unfähig sind, wenn es darum geht, Operationen auf Datentröme anzuwenden (jetzt nicht speziell Java). Von denen bekommt man dann schnell die Einschätzung, dass das viel zu aufwendig wäre, aber wenn man dann zeigen kann, dass es mit wenigen Zeilen Code gemacht ist, wird man angeguckt, als wäre man heilig gesprochen worden.

Das zeigt mir: Programmiersprachen zu beherrschen und an fette APIs zu glauben, reicht eben doch nicht. Woran es zumeist scheitert, sind die Konzepte dahinter, und die lernt man besser auf Papier. ;)

Ark
 

julianmertz

Mitglied
Also ich glaube, dass Problem bei mir liegt nicht an den IO-Tools. Es geht bei mir im allgemeinem darum, ein JAVA-Programm ohne JOE starten zu können. Dann würde es mit den IO-Tools sicherlich auch funktionieren. Ich bringe es einfach nicht ferig ein JAVA Programm ohne JOE zu starten.
 
S

shad0w

Gast
Dann gib mal das hier ein (wenn du in dem Ordner bist, wo IOToolsTest.class drin ist):

C:\Program Files\Java\jdk1.6.0_07\bin\javap.exe IOToolsTest

Jetzt muss es aber gehen, sonst hast du irgendwie keine javap.exe in deinem bin-Ordner. :bahnhof:
 

Marco13

Top Contributor
Warum denn jetzt eigentlich javap? @Threadersteller: Das hatte sicher einen Grund, gibt aber Dinge aus, mit denen du nichts anfangen können wirst.

Also: Wenn du im richtigen Verzeichnis bist, solltest du das mit
C:\Program Files\Java\jdk1.6.0_07\bin\java IOToolsTest
starten können.
 

julianmertz

Mitglied
Wo soll ich den das ganze eingeben. Es funktoniert bei der "Eingabeaufforderung" von Windows nicht.
Ich bin dort immer im Ordner
C:\Users\Admin

Ich kann auch den ORdner nicht wechseln. Wenn ich
C:\Program Files\
eigebe steht dort:
Der Befehl "C:\Program" ist entweder falsch geschrieben oder konnte nicht gefunden werden.
Ich komme bei der Eingabeaufforederung von Windows einfach nicht aus dem Verzeichnis
C:\Users\Admin
raus.
 

Marco13

Top Contributor
Oder so, wie es schon auf Seite 1 steht
Marco13 hat gesagt.:
Um dich nicht mit dem Classpath rumschlagen zu müssen, am besten die IOTools-JAR ins gleiche Verzeichnis kopieren wie deine class-Dateien.
Dann
Start->Ausführen->"cmd" Eintippen->OK Klicken
In der Konsole:
c:
cd \Verzeichnis\Wo\Die\Class\Datei\Liegt
c:\Verzeichnis\Wo\Die\Java\Exe\Liegt\java IOToolsTest

Also z.B.
c:
cd \Develop\FirstProgram
c:\Programme\Java\jdk\bin\java IoToolsTest


:roll:
 

julianmertz

Mitglied
Funktioniert beides nicht.
Wenn ich

cd \
cd program files

eingebe, bekomme ich folgende Fehlermeldung:
Das System kann den angegebenen Pfad nicht finden.


Wenn ich

c:
cd \Develop\FirstProgram
c:\Programme\Java\jdk\bin\java IoToolsTest

eingebe, bekomme ich folgende Fehlerrmeldung:
Der Befehl"c:cd\Programme\Java\jdk\bin\java IoToolsTest" ist entweder falsch geschrieben oder konnte nicht gefunden werden.


Ich komme bei der Eingabeaufforderung einfach nicht von dem Verzeichnis

C:\Users\Admin

weg.
 

Marco13

Top Contributor
Du hast aber schon nach jeder Zeile "RETURN" gedrückt?
(So langsam riecht's hier schon SEHR trollig....)
 
S

shad0w

Gast
Wie Marco schon gesagt hat, du musst nach jeder Zeile ENTER/RETURN/EINGABETASTE drücken.
Das ist die größte Taste auf der Tastatur, abgesehen von der Leertaste. So wie ich das sehe... schön groß, kaum zu verfehlen. :)

Wenn du in der Eingabeaufforderung bist, gib mal ein:

set path

und dann ENTER drücken.

Was steht dann da?
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben