IOTools in Eclipse

Hallo Leute ich habe mal eine kleine Frage. Wie kann ich die IOTools in Eclipse einbinden? Zuvor habe ich immer den java-Editor benutzt da ging das einwandfrei aber jetzt habe ich irgendwie Probleme.
Falls wer Tipps hat. Oder auch eine andere Alternative? Man kann das ja auch mit Java swing machen glaube ich ?

mfg Overskill

Ach ja, die berühmt-berüchtigten IOTools - meistens sind die nur “ein Scanner auf Steroiden”. Brauchst du die wirklich? Mit einem http://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html sollte man da das meiste schon machen können. Ansonsten… hast du da wohl eine JAR-Datei?! Normalerweise muss man die nur als “referenced library” zum Projekt hinzufügen.

Und wie füge ich das da ein und muss ich das bei jedem Projekt neu machen?

Danke für die Antwort

Overskill

Lektion 1 bis 876 im Leben: Suchmaschine

Lektion 877: http://www.wikihow.com/Add-JARs-to-Project-Build-Paths-in-Eclipse-(Java)

Okay danke erstmal aber ich habe da keine JAR Datein sondern etwas anderes?

:wink:

cool - ich hoffe die Klassen (ich kenne sie nicht) liegen alle im Default-Package - sonst gibts Probleme

Schau auch mal hier http://www.grundkurs-java.de/index.php?option=com_content&view=article&id=4&Itemid=8 ganz unten. Da gibt’s die IOTools, und Installationsanleitungen.

@Overskill : Wenn möglich, verzichte auf IOTools. Das ist mMn die schlechteteste Art und Weise Java zu lernen und deren Einsatz ist völlig unnötig.
In jedem guten Einsteigerbuch und auch im kostenlosen eBook “Java ist auch eine Insel” werden die Klassen für die Ein- und Ausgabe auf der Shell erklärt. IOTools braucht man dazu nicht (mehr).

So danke erstmal an Alle (:
Nur noch eine abschließende Frage. Wieso sollte man auf die IOTools verzichten? Das Buch, welches ich mir gekauft habe basiert fast nur darauf(also statt Swing oder so immer IOTools)?

mfg Overskill

Kurz zur Klarstellung: Swing ist eine Sammlung von Klassen, mit denen man eine grafische Benutzeroberfläche erstellen kann und umfasst alle klassen unter javax.swing.* :cool:
Mit IOTools hat das erstmal nichts zu tun.

IOTools selber hat z.B. keine wirkliche brauchbare Fehlerbehandlung. In der Version die Marco verlinkt hat fliegt beispielsweise ein System.exit() herum, das dir bei einem Fehler dein komplettes Programm beendet, ohne dass du dieses Verhalten ändern kannst.
Fast die gleiche Funktion, die dir die Klasse bietet, bekommst du auch durch die [japi]Scanner[/japi]-Klasse, da aber mit richtiger Fehlerbehandlung.
Und da die Exceptions in Scanner keine checked-Exceptions sind, kannst du die Fehlerbehandlung am Anfang sogar in deinem Code ignorieren.

Scanner dürfte weitaus mächtiger sein, also die durchweg statischen read()-Methoden der IOTools. Von OOP hier also keine Spur…
IOTools verpacken bspw. das Lesen von Benutzereingaben von der Java-Console in recht einfache Befehle, die allerdings die wahren Vorgänge und die Klassen und Methoden der Java-API vor dem Einsteiger verbergen.
Als die IOTools entstanden, wurde das noch mit [japi]BufferedReader[/japi] gemacht. Der Aufbau des Befehls zum Erzeugen des BufferedReaders war für Einsteiger verwirrend und schwer verständlich. Der Programmierer der IOTools hat nun all diese Dinge in zum Teil fehlerhaften Code verpackt.
In einigen Schulen wird damit sogar Informatik gelehrt. :frowning: Dabei sind die IOTools keineswegs brauchbarer Standard. Daher sollte davon Abstand genommen werden.
Benutze am besten die Klassen der Standard-Java-API (Java SE), da ist alles enthalten, was du für Konsolenprogramme benötigst.

Ob es bei DIESEM IOTools auch so ist, weiß ich nicht, aber: Etliche Unis/Tutorials etc. hatten vor etlichen Jahren mal solche Utility-Klassen erstellt. Der Grund dafür ist einfach: Bis vor Java 1.5 waren Konsolenein- und -ausgabe ein ziemlicher Krampf. Man mußte sich mit irgendwelchen Streams und Readern und Writern und IOExceptions rumschlagen, obwohl man doch „nur mal schnell eine Zahl eintippen“ können sollte. So gesehen mach(t)en diese Utilities schon Sinn, um sich auf’s wesentliche beschränken zu können. Mit Java 1.5 kam aber der „Scanner“ zur Standard-API, und seitdem braucht man solche Klassen (zumindest für Konsoleneingaben und so) eigentlich nicht mehr. Die Tutorials/Bücher etc. wurden dann aber nicht unbedingt angepasst. Es ist ja nicht so „wichtig“…

… und das führt auch zu deinem anderen Punkt: Wenn in dem Buch immer diese IOTools verwendet werden, ist das nicht unbedingt schlimm. In dem Buch geht es ja (vermutlich eben gerade) NICHT um die IOTools, sondern um Java. Und dort wird auch das (legitime) Ziel verfolgt, dass man „mal schnell was eingeben“ kann. Die „wichtigen“ Sachen (Schleifen, Variablen, Klassen, … ) sind ja unabhängig davon. Du kannst dann einfach akzeptieren: Gut, hier rufe ich „IOTools.readInt“ auf, das könnte ich auch mit dem „Scanner“ machen - ist wurscht :slight_smile:

Wo es etwas heikler werden kann, ist, wenn diese IOTools wirklich „mächtig“ werden - wenn sie z.B. einen „Ersatz für Swing“ bereitstellen, mit dem man z.B. Zeichnen kann, der aber mit „echtem“ Swing nichts mehr zu tun hat. Aber das scheint hier nicht der Fall zu sein.

(EDIT: Hoppala, hätte mal reloaden sollen - einiges zum „historischen Hintergrund“ hatte Lex jetzt schon gesagt. Ich finde aber (ganz subjektiv) dass es für das, worum es in den Lerneinheiten gehen sollte, nicht so wichtig sein sollte, ob man nun „IOTools.readInt“ schreibt oder „scanner.readInt“…beides sind nur wrapper für komplexere, „unbequemere“ Sachen. Hauptsache man kommt an seinen heißbegehrten int ran :D)