INFORMATIK UNIVERSITÄT LINZ V. Christian Einführung in JAVA Small History Machine Virtual Machine (VM) Komponenten der VM Entwicklungswerkzeuge JDK Woher bekommt man JDK Wie installiert man JDK Wie benutzt man JDK Entwicklungsumgebungen Einführung in JAVA INFORMATIK UNIVERSITÄT LINZ V. Christian Java 23. May 1995: John Gage (Director of the Science Office for Sun Microsystems) and Marc Andreessen (Vice President at Netscape) announces Java 1.0 Java war für das Internet gedacht Java-Applets … kleine Java Programme die auf jedem Web-Browser auf jedem Computer (Intel, Mac, …) laufen können. Kaffee Maschinen Kühlschrank U.v.a.m. Viele Höhen und Tiefen … Java war schon einmal nahezu tot. Heute extrem weit verbreitet vom Supercomputer bis hin zum Handy. Existiert wahrscheinlich für jede Hardware und jedes Betriebssystem. INFORMATIK UNIVERSITÄT LINZ Einführung in JAVA V. Christian Design Ziele von Java Portabilität Java muss eine Virtuelle Maschine enthalten PC, Unix, Mac, Symbian, … Zuverlässigkeit Keine Programm abstürze und Fehlermeldungen, Es soll immer sinnvoll auf Fehler reagiert werden Sicherheit (Sandbox) Aus dem Netz geladene Programme dürfen auf keine lokalen Dateien und Geräte zugreifen und keine Netzwerkverbindungen zu „dritten“ Computern aufbauen Einfachheit, Vertrautheit Reizvoll für den Durchschnittsprogrammierer Einfacher als C++ Objektorientiert Nahezu alles ist ein Objekt Effizienz Wichtig aber nicht wirklich an zentraler Stelle, d.h. also sekundär INFORMATIK UNIVERSITÄT LINZ Einführung in JAVA V. Christian Maschine Virtuelle Maschine Veranschaulichung Virtuelle Maschine „Echte“ Maschine Applikation INFORMATIK UNIVERSITÄT LINZ Einführung in JAVA V. Christian Virtual Machine Stück Software, welches einen (fiktiven) Computer (Prozessor + RAM + ROM + Betriebssystem) simuliert. Ist ein vollwertiger „Computer“ auf dem Programme laufen können. Läuft selbst auf einem realen oder virtuellen Computer. Kann auf nahezu jede Plattformen portiert werden. Vom Super Computer bis zu Handys Von Unix bis Windows-CE, Symbian und noch kleiner Selbes Programm läuft (mit Einschränkungen) auf alle diesen Plattformen ohne nochmals übersetzt oder portiert zu werden, da sich die VM auf jeder Plattform gleich verhält. INFORMATIK UNIVERSITÄT LINZ Einführung in JAVA V. Christian Machine Virtual Machine Technisch Machine Virtual Machine Java Application Java Core API (java.*.class) Operating-System Hardware Plattformabhängig Java Virtual er e JN I -B System-Libraries ich e.g. C/C++ Application System-Libraries Machine Operatin System g Hardware Teilweise Standardisiert Plattformunabhängig INFORMATIK UNIVERSITÄT LINZ Einführung in JAVA V. Christian Runtime Environment (Laufzeitumgebung) Hardware Intel x86, Power-Mac, Sun Sparc, íPAQ, Cell Phone, … System-Libraries Operating System Operating-System Windows, Mac OS X, Linux, Solaris, HP-UX, … Hardware System Libraries libc, libm, libdns, libpthread, … INFORMATIK UNIVERSITÄT LINZ Einführung in JAVA V. Christian Java Runtime Environment (JRE) Java Core API (java.*.class) Java Virtual Machine (JVM) java Java Virtual Ist Hardware und Operating System in einem Interpreter Machine Interpretiertes ausführen eins Java-Programms. Just-In-Time (JIT) Compiler Übersetzt das Java-Programm in die jeweilige Maschinensprache der realen Plattform Kompilierte Java-Programm läuft „native“ auf der Plattform Java Core API java.*.class System Libraries der JVM. Schnittstellen zur „Hardware“ der JVM. Nützliche Algorithmen Stringmanipulation, mathematische Algorithmen, ... INFORMATIK UNIVERSITÄT LINZ Einführung in JAVA V. Christian Software Development Kit (SDK) Notwendig um: Quellcode zu übersetzen (compile) Fehler zu suchen (debug) Besteht aus mehreren Programmen (Tools) wie Compiler (gcc, cc, f77, f99, …) Debugger (gdb, dbx, …) Assembler/Disassembler (as, nas, …) INFORMATIK UNIVERSITÄT LINZ Einführung in JAVA V. Christian Java Development Kit (JDK) Java Compiler javac Übersetzt den Quellcode in Java Byte-Code Java Debugger jdb Tool zur Fehlersuche Java Disassembler javap Erzeugt aus Byte-Code lesbaren Quellcode Weitere Tools jar, javah, … Dokumentation, Packagin, … Java Dokumentation (separates Download) Einführung in JAVA INFORMATIK UNIVERSITÄT LINZ V. Christian Java Platform Software Development Kit Java 2 Plattform, Standard Edition Software Development Kit (J2SESDK) JRE + JDK = J2SE-SDK Aktuelle Version: v 1.4.2 Java Implementierungen Sun (http://java.sun.com/) J2SE-SDK SE = Standard Edition; Kommerziell, für nicht kommerzielle Anwendungen frei J2EE-SDK EE = Enterprise Edition; Kommerziell J2ME-SDK ME = Micro Edition; Für Handys und andere kleine Devices; Kommerziell IBM (http://www-106.ibm.com/developerworks/java/jdk/) J2SE-SDK, J2ME-SDK Kommerziell, für nicht kommerzielle Anwendungen frei Blackdown (http://www.blackdown.org/) J2SE-SDK GNU General-Publick-License (GPL) Einführung in JAVA INFORMATIK UNIVERSITÄT LINZ V. Christian Woher bekommt man den J2SESDK + Java Dokumentation? Direkt von Sun-Microsystems http://java.sun.com/j2se/1.4.2/download.html Vom Webserver des Instituts für Pervasive Computing http://www.soft.uni-linz.ac.at/Teaching/Begleitmaterial/Download Einführung in JAVA INFORMATIK UNIVERSITÄT LINZ V. Christian Wie installiert man das SDK? Genau beschrieben in Installationsanleitung Kurzüberblick Download von j2sdk-1_4_2_05-windows-i586.exe Ausführen von j2sdk-1_4_2_05-windows-i586.exe Dialoge beantworten und JDK im Standardverzeichnis C:\j2sdk1.4.2_05 installieren Pfad zu den SDK-Programmen Registrieren SDK benutzen Einführung in JAVA INFORMATIK UNIVERSITÄT LINZ V. Christian Pfad registrieren (Win95, Win98, WinME) Voraussetzung: Installation von JDK im Standardverzeichnis C:\j2sdk1.4.2_05. Die Datei „autoexec.bat“ ändern PATH=C:\WINDOWS;...;C:\J2SDK1.4.2_05\BIN Es ist nicht (mehr) notwendig die Environment Variable CLASSPATH zu setzten. Einführung in JAVA INFORMATIK UNIVERSITÄT LINZ V. Christian Pfad registrieren (WinNT, Win2000, WinXP) Einführung in JAVA INFORMATIK UNIVERSITÄT LINZ V. Christian Installation prüfen DOS-Prompt öffnen und das Folgende (rote) eingeben C:\...\> java –version <CR> java version „1.4.2_05“ Java™ 2 Runtime Environment, Standard Edition (build 1.4.2_05) Java HotSpot(TM) Client VM (build 1.4.2_05, mixed mode) C:\...\> javac <CR> Usage: javac <options> <source files> where possible options include: -g Generate all debugging info -g:none Generate no debugging info ... <CR> … Return Taste (Carriage Return) INFORMATIK UNIVERSITÄT LINZ Einführung in JAVA V. Christian Programmieren, Kompilieren, Starten Programm schreiben Wordpad Beliebiger Editor Entwicklungsumgebung Programm übersetzen HelloWorld.java javac javac Entwicklungsumgebung Programm starten java Entwicklungsumgebung javap HelloWorld.clas s java Hello, World! jdb INFORMATIK UNIVERSITÄT LINZ Einführung in JAVA V. Christian Programm schreiben (Wordpad) Wordpad HelloWorld.java INFORMATIK UNIVERSITÄT LINZ Einführung in JAVA V. Christian Programm kompilieren (javac) HelloWorld.java javac HelloWorld.clas s INFORMATIK UNIVERSITÄT LINZ Einführung in JAVA V. Christian Programm starten (java) HelloWorld.cl ass java Hello, World! Einführung in JAVA INFORMATIK UNIVERSITÄT LINZ V. Christian Entwicklungsumgebung: TextPad http://www.textpad.com Einführung in JAVA INFORMATIK UNIVERSITÄT LINZ V. Christian Entwicklungsumgebung: JBuilder http://www.borland.com/ Einführung in JAVA INFORMATIK UNIVERSITÄT LINZ V. Christian Entwicklungsumgebung: Eclipse http://www.eclipse.org/ Einführung in JAVA INFORMATIK UNIVERSITÄT LINZ V. Christian Dringend verwenden: In, Out.java Woher: Von der Homepage http://www.ssw.uni-linz.ac.at/ Warum: Einfache Handhabung der Eingabe von der Tastatur Einfache Handhabung der Ausgabe auf dem Bildschirm Dokumentation: Ist im zip-File inkludiert