Scripting und Compilation

Größe: px
Ab Seite anzeigen:

Download "Scripting und Compilation"

Transkript

1 Scripting und Compilation JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer

2 Scripting und Compilation Scripting in der Java VM Compilation

3 Scripting Ab Java 6 Unterstützung von Script-Sprachen Einfaches API für die Ausführung von Scripts innerhalb der Java VM Basissystem für die Implementierung von Script-Engines Installation von Script-Sprachen über Java Services Mozilla Rhino JavaScript Engine bereits installiert package javax.script

4 Vorgehen Erzeugen eines ScriptEngineManagers Abrufen einer Script-Engine einer bestimmten (installierten) Script- Sprachen über ScriptEngineManager Ausführen von Scripts Behandlung von ScriptExceptions ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getenginebyname( "JavaScript" ); try { engine.eval( "println('hello World');" ); catch (ScriptException e) { System.out.println( "Error in script: line " + e.getlinenumber() + ", colum " + e.getcolumnnumber() + ", message " + e.getmessage() ); oder Ausführen eines Script-Programms aus einem File (Verwendung eines Readers) engine.eval(new java.io.filereader( "SimpleGreeter.js" ));

5 Verwendung von Variablen und Bindings Binden von Variablen mit put engine.put( "x", 1); engine.eval( "x = x + 1;" ); engine.put( "frame", new JFrame()); engine.eval( "frame.setvisible(true);" ); Abrufen von Variablenwerten mit get Object x = engine.get("x"); System.out.println(x); JFrame frame = (JFrame)engine.get( "frame" ); frame.setvisible(false); 2 Verwendung von Bindings Bindings scope = engine.createbindings(); scope.put( "x", "xxx" ); engine.eval( "x = x + x;", scope); Object xxx = scope.get( "x" ); System.out.println(xxx); Evaluierung im Scope xxxxxx x = engine.get( "x" ); System.out.println(x); 2 Wert im globalem Scope bleibt erhalten

6 Funktions- und Methodeaufrufe Engines müssen Invocable implementieren Invocalbe inv = (Invocable) engine; Aufruf von Script-Funktionen engine.eval( "function greet(x) {return 'Hello, ' + x + '!'; " ); String greeting = ((String)inv.invokeFunction( "greet", "Franz" )); System.out.println(greeting); Hello, Franz! Aufruf von Methoden (bei objekt-orientierten Script-Sprachen) engine.eval(new FileReader( "SimpleGreeter.js" )); Object goodbyegreeter = engine.eval( "new SimpleGreeter('Goodbye')" ); "SimpleGreeter.js" function SimpleGreeter(salutation) {this.salutation = salutation; SimpleGreeter.prototype.greet = function(whom) { return this.salutation + ", " + whom + "!" System.out.println(inv.invokeMethod(goodbyeGreeter, "greet", "Ann" )); Goodbye, Ann!

7 Implementierung von Interfaces Java-Interfaces können durch Script-Objekte implementiert werden Mit getinterface(object, Class<T>) von Invocable engine.eval( "var obj = new Object(); obj.run = function() { println('run method called'); " ); Object obj = engine.get( "obj" ); Invocalbe inv = (Invocable) engine; Runnable r = inv.getinterface(obj, Runnable.class); Thread thread = new Thread(r); thread.start(); run method called

8 Compilation von Scripts Scripts können compiliert werden mit compile von Compilable Engine muss Compilable implementieren erzeugt CompiledScript das mit eval ausgeführt werden kann Compilable compengine = (Compilable)engine; CompiledScript script = compengine.compile( "println ('compiled script called')" ); script.eval(); compiled script called

9 Beispiel Interaktive Java-Script Anwendung public class JSCalculator { private JTextArea scriptarea; private ScriptEngine jsengine; privare execbtn;... public JSCalculator() { ScriptEngineManager manager = new ScriptEngineManager(); jsengine = manager.getenginebyextension("js"); frame = new JFrame("JS Calculator"); execbtn = new Jbutton("Exec"); execbtn.addactionlistener(exechandler);... TextArea mitjavascript Code private ActionListener exechandler = new ActionListener() public void actionperformed(actionevent e) { String script = scriptarea.gettext(); Object result; try { result = jsengine.eval(script); scriptlistmodel.addelement(script); scriptarea.settext(" "); catch (ScriptException e) { resultlabel.settext("error at column " + e.getcolumnnumber() + ": " + e.getmessage()); catch (Exception e) { resultlabel.settext("exception occurred: " + e.getmessage());

10 Installation von Script-Sprachen Script-Engine werden als Jar-Libraries installiert Müssen java.script.scriptenginefactory Service implementieren Registrierung als Service in META-INF Auffinden ScriptEngineManager manager = new ScriptEngineManager(); System.out.println( "Available factories: " ); for (ScriptEngineFactory factory : manager.getenginefactories()) { System.out.println(factory.getEngineName()); Service Discovery! final ScriptEngine engine = manager.getenginebyname( "groovy" ); Object result = engine.eval( "x = 1;" );

11 Exkurs Java Services

12 Java Service und Service Loader Implementierungen zur Laufzeit anfordern Java Service Interface = Spezifikation des Service Java Service Provider = Implementierung des Service ServiceLoader = Mechanismus zu Auffinden und Laden der Service Provider zur Laufzeit Vorgehen: Service Interface definieren Service Provider implementieren registieren: in META-INF/services/<full-qualified-servicename> in Jar-Datei verpacken Mit ServiceLoader Provider laden

13 Beispiel Java Services Service Interface definieren package services; public interface MyService { public void doservice(); Service Provider implementieren package services; public class FirstProvider implements MyService public void doservice() { System.out.println("First Service"); package services; public class SecondProvider implements MyService public void doservice() { System.out.println( Second Service"); registieren: in META-INF/services/<full-qualified-servicename> services.firstprovider services.secondprovider

14 Beispiel Java Services Mit ServiceLoader Provider laden package services; import java.util.serviceloader; public class TestMyServices { public static void main(string[] args) { ServiceLoader<MyService> loader = ServiceLoader.load(MyService.class); for (MyService provider: loader) { provider.doservice();

15 Scripting und Compilation Scripting in der Java VM Compilation

16 Compiler Tools API Zugriff auf Javac-Compiler über Tools API JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); Ausführen des Java-Compilers durch run 0 für Erfolg Streams für Ein-/Ausgabe (Meldungen etc.) Argumente wie bei Aufruf von javac int run(inputstream in, OutputStream out, OutputStream err, String... arguments); Standard Ein-/Ausgabe int r = compiler.run(null, null, null, "-sourcepath", ".", "SayHalloClass.java");

17 CompilationTasks CompliationTask erlaubt genaue Kontrolle über Compilation-Prozess filemanager: Manager für Source- und Class-Files diagnosticlisteners: Behandlung von Fehlermeldungen classes: Klassen für Annotations-Verarbeitung (hier nicht verwendet) compilationunits: Source-Code CompilationTask gettask(writer out, JavaFileManager filemanager, DiagnosticListener<? super JavaFileObject> diagnosticlistener, Iterable<String> options, Iterable<String> classes, Iterable<? extends JavaFileObject> compilationunits); Beispiel: Stamdard: Lesen und Schreiben auf Filesystem StandardJavaFileManager filemanager = compiler.getstandardfilemanager(null, null, null); DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>(); Iterable<? extends JavaFileObject> compilationunits = filemanager.getjavafileobjectsfromstrings(arrays.aslist( "SayHalloClass.java" )); JavaCompiler.CompilationTask task = compiler.gettask(null, filemanager, diagnostics, null, null, compilationunits); boolean success = task.call();

18 Bsp: Generierung und Compilieren von generiertem Code Basisklasse mit abstrakter Methode addeventhandlers public abstract class ButtonFrame extends JFrame { public ButtonFrame() { panel = new JPanel(); yellowbutton = new JButton("Yellow"); bluebutton = new JButton("Blue"); redbutton = new JButton("Red");... addeventhandlers(); protected abstract void addeventhandlers(); Textfile action.properties mit Action-Code für Buttons yellowbutton=panel.setbackground(java.awt.color.yellow); bluebutton=panel.setbackground(java.awt.color.blue); redbutton=panel.setbackground(java.awt.color.red); Genierierter Code package x; public class Frame extends com.horstmann.corejava.buttonframe { protected void addeventhandlers() { yellowbutton.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(java.awt.event.actionevent event) { panel.setbackground(java.awt.color.yellow); ); redbutton.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(java.awt.event.actionevent event) { panel.setbackground(java.awt.color.red); ); bluebutton.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(java.awt.event.actionevent event) { panel.setbackground(java.awt.color.blue); );

19 Bsp: Generierung und Compilieren von generiertem Code 1. Source-Code wird mit StringBuilder dynamisch erzeugt 2. Byte-Code wird in Byte-Array abgelegt 3. Code wird aus Byte-Array geladen und ausgeführt Ad 1.) JavaFileObject mit StringBuilder als Quelle public class StringBuilderJavaSource extends SimpleJavaFileObject { public StringBuilderJavaSource(String name) { super(uri.create("string:///" + name.replace('.', '/') + Kind.SOURCE.extension), Kind.SOURCE); code = new StringBuilder(); public CharSequence getcharcontent(boolean ignoreencodingerrors) { return code; public void append(string str) { code.append(str); code.append('\n'); Name des FileObjects liefert Source-Code private StringBuilder code; für Erzeugung des Source-Codes

20 Beispiel: Generierung und Compilieren von Code Ad 1.) Erzeugen des Source-Codes aus Template static JavaFileObject buildsource(string superclassname) throws IOException { StringBuilderJavaSource source = new StringBuilderJavaSource("x.Frame"); source.append("package x;\n"); source.append("public class Frame extends " + superclassname + " {"); source.append("protected void addeventhandlers() {"); Properties props = new Properties(); props.load(new FileReader("action.properties")); for (Map.Entry<Object, Object> e : props.entryset()) { String beanname = (String) e.getkey(); String eventcode = (String) e.getvalue(); source.append(" " + beanname + ".addactionlistener(new java.awt.event.actionlistener() {"); source.append(" public void actionperformed(java.awt.event.actionevent event) {"); source.append(" " + eventcode); source.append(" );"); source.append(" "); return source; Event Code aus Datei action.properties wird in actionperformed von ActionsListener verpackt und bei Komponenten angefügt!

21 Beispiel: Generierung und Compilieren von Code Ad 2.) JavaFileObject mit ByteArrayOutputStream für Byte-Code public class ByteArrayJavaClass extends SimpleJavaFileObject { public ByteArrayJavaClass(String name) { super(uri.create("bytes:///" + name), Kind.CLASS); stream = new ByteArrayOutputStream(); public OutputStream openoutputstream() throws IOException { return stream; public byte[] getbytes() { return stream.tobytearray(); liefert Byte-Code OutputStream für Compiler Name des FileObjects private ByteArrayOutputStream stream;

22 Beispiel: Generierung und Compilieren von Code Ad 2.) Erzeugen eines FileManagers, der entsprechende FileObjects liefert ForwardingJavaFileManager JavaFileManager filemanager = compiler.getstandardfilemanager(diagnostics, null, null); filemanager = new ForwardingJavaFileManager<JavaFileManager>(fileManager) { Delegation aller nichtüberschriebenen Aufrufe zu diesem FileManager ; public JavaFileObject getjavafileforoutput(location location, final String classname, Kind kind, FileObject sibling) throws IOException { if (classname.startswith("x.")) { ByteArrayJavaClass fileobject = new ByteArrayJavaClass(className); classfileobjects.add(fileobject); return fileobject; else { return super.getjavafileforoutput(location, classname, kind, sibling); Liefert ByteArrayJavaClass für alle Klassen im Package "x"

23 Beispiel: Generierung und Compilieren von Code Ad 3.) Compilation JavaFileObject source = buildsource("com.horstmann.corejava.buttonframe"); JavaCompiler.CompilationTask task = compiler.gettask(null, filemanager, diagnostics, null, null, Arrays.asList(source)); Boolean result = task.call(); Laden Map<String, byte[]> bytecodemap = new HashMap<String, byte[]>(); for (ByteArrayJavaClass cl : classfileobjects) { bytecodemap.put(cl.getname().substring(1), cl.getbytes()); ClassLoader loader = new MapClassLoader(byteCodeMap); Class<?> cl = loader.loadclass("x.frame"); public class MapClassLoader extends ClassLoader { public MapClassLoader(Map<String, byte[]> classes) { this.classes = classes; Ausführen (über Reflection) JFrame frame = (JFrame) cl.newinstance(); frame.settitle("compilertest"); frame.setvisible(true); protected Class<?> findclass(string name) throws ClassNotFoundException { byte[] classbytes = classes.get(name); if (classbytes == null) throw new ClassNotFoundException(name); Class<?> cl = defineclass(name, classbytes, 0, classbytes.length); if (cl == null) throw new ClassNotFoundException(name); return cl; private Map<String, byte[]> classes;

24 Zusammenfassung Scripting API erlaubt Verwendung von Script-Sprachen in Java- Anwendungen Compiler Tool API erlaubt Verwendung des Java-Compilers in Java- Anwendungen Java Service API wird zum Auffinden von installierten Script-Sprachen und Compilern verwendet

Java - Programmierung - Objektorientierte Programmierung 1

Java - Programmierung - Objektorientierte Programmierung 1 Java - Programmierung - Objektorientierte Programmierung 1 // Klassen und Objekte public class KlaObj public static void main(string args []) Klasse1 a; a = new Klasse1("heute", 47); Klasse1 b = new Klasse1

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

Mehr

Schritt 4: Hallo Enterprise Bean

Schritt 4: Hallo Enterprise Bean Prof. Dr. Th. Letschert FB MNI JEE Schritt 4: Hallo Enterprise Bean Einstieg: EJBs erzeugen und nutzen Meine erstes EJB Projekt Enterprise Beans sind eine Backend Technologie, die mit unterschiedlichen

Mehr

Codegeneratoren mit Xtend2. 11.04.2012, A. Arnold

Codegeneratoren mit Xtend2. 11.04.2012, A. Arnold Codegeneratoren mit Xtend2 11.04.2012, A. Arnold Copyright 2012 anderscore GmbH Inhalt 1. Was ist Xtend2? 2. Xtend2 Konzepte 3. Hands On! 3 4 8 20 2 Was ist Xtend2? Funktionale, objektorientierte Sprache

Mehr

Kapitel 14. Systemarchitektur

Kapitel 14. Systemarchitektur 1 Kapitel 14 Ziele 2 Grundprinzipien der verstehen Schichtenarchitekturen kennenlernen Modelle und Programme mit Paketen strukturieren Eine Architektur für eine einfache Bankanwendung konstruieren Grundprinzipien

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2013/2014 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Kommunikations-Middleware Bietet höhere Kommunikations-Dienste

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004)

Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004) Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004) A Bearbeitungszeit: 120 Minuten NICHT MIT BLEISTIFT SCHREIBEN! Name: Vorname: Matrikelnummer: Nr Max Bewertung

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

5. Threads, Serverprozesse und Benachrichtigungen

5. Threads, Serverprozesse und Benachrichtigungen 5. Threads, Serverprozesse und Benachrichtigungen Threads allgemein Threads in Android: Handler und Messages Services: Local, Remote, Binding Benachrichtigungen Entwicklung mobiler Anwendungen Europäische

Mehr

Grundlagen der Programmierung UE

Grundlagen der Programmierung UE Grundlagen der Programmierung UE Research and teaching network GdP UE H. Prähofer, R. Wolfinger 1 Vortragende Dr. Herbert Praehofer (G1 u. G2) Mag. Reinhard Wolfinger (G3 u. G4) Institute for System Software

Mehr

Grundlagen zur nebenläufigen Programmierung in Java

Grundlagen zur nebenläufigen Programmierung in Java Grundlagen zur nebenläufigen Programmierung in Java Karlsruher Entwicklertag 2013 5. Juni 2013 Referent: Christian Kumpe Inhalt des Vortrags Was zeigt dieser Vortrag? Ein einfaches Beispiel mit allerlei

Mehr

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Java 8. Programmiermethodik. Eva Zangerle, Nikolaus Krismer Universität Innsbruck

Java 8. Programmiermethodik. Eva Zangerle, Nikolaus Krismer Universität Innsbruck Java 8 Programmiermethodik Eva Zangerle, Nikolaus Krismer Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

Java Lab 2006/12/13 Client

Java Lab 2006/12/13 Client Java Lab 2006/12/13 Client Prof. Dr. Bernhard Humm Version: 1.0 Date: 2006/12/06 Darmstadt University of Applied Sciences Department of Computer Science Schöfferstr. 8b 64295 Darmstadt Germany 1 Einleitung

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de Aufgaben: Ein Ausgabe Ein Rechner verwaltet nicht nur Daten, die während der Laufzeit des Programms erzeugt werden. Die meisten Programme greifen auf ältere Datenbestände zurück oder erzeugen für einen

Mehr

Android Processes & Services

Android Processes & Services Android Processes & Services Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 4 besprechen (inkl. Repetition)

Mehr

1. Der Einstieg in Java

1. Der Einstieg in Java 1. Der Einstieg in Java Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen

Mehr

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero Exceptions Prof. Dr. Margarita Esponda SS 2012 1 Ausnahmen Eine Ausnahme (Exception) ist ein Fehler oder ein nicht geplantes Ereignis, das während der Ausführung eines Programms vorkommt und dessen normalen

Mehr

Klausur vom 14. Juni 2004. Informatik 4

Klausur vom 14. Juni 2004. Informatik 4 Berner Fachhochschule Hochschule für Technik und Informatik, HTI Fachbereich Elektro- und Kommunikationstechnik Labor für Technische Informatik, Burgdorf Klasse: EV02-1 Name, Vorname: Klausur vom 14. Juni

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

Mehr

Applications Applets (eingeschränkte Rechte)

Applications Applets (eingeschränkte Rechte) 1 Arten von Java-Programmen Man unterscheidet 2 verschiedene Arten von Java-Programmen: Applications Applets (eingeschränkte Rechte) Erstere sind eigenständige Programme. Letztere sind "kleine" Programme,

Mehr

Warum EJB Technologie (1)?

Warum EJB Technologie (1)? Datenbanken und Informationssysteme 2 SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS 2004 Folie EJB - 1 Warum EJB Technologie

Mehr

Typische Probleme. 7. Performance und Speicherauslastung. Parameter von java mit Performance-Einfluss. Parameter von javac mit Performance-Einfluss

Typische Probleme. 7. Performance und Speicherauslastung. Parameter von java mit Performance-Einfluss. Parameter von javac mit Performance-Einfluss 7. Performance und Speicherauslastung Java-Parameter mit Performance-Einfluss Versteckte Speicherlecks Direkte Zeitmessung in Java Konzept von Performance-Messwerkzeugen Netbeans-Profiler Software-Qualität

Mehr

Exceptions: Parameterprüfung import java.io.ioexception;

Exceptions: Parameterprüfung import java.io.ioexception; PPK2 Java Exceptions, Dateien Seite 1 von 31 Exceptions: Parameterprüfung import java.io.ioexception; public class Parameters public static String Methode(String str,exception obj,int index, String[] array)

Mehr

Java Security. Sicherheit durch Classloader, Security Manager und Co. Prof. Dr. Nikolaus Wulff

Java Security. Sicherheit durch Classloader, Security Manager und Co. Prof. Dr. Nikolaus Wulff Java Security Sicherheit durch Classloader, Security Manager und Co. Prof. Dr. Nikolaus Wulff Das Java Sicherheitskonzept Java wurde von Anfang an auf Sicherheit im Internet ausgelegt. Unsicherer Code

Mehr

Teil II. Objektorientierte Programmierung und objektorientierter Entwurf

Teil II. Objektorientierte Programmierung und objektorientierter Entwurf Teil II Objektorientierte Programmierung und objektorientierter Entwurf 39 Kapitel 8 Robuste Programme durch Ausnahmebehandlung Ziele: Lernen, robuste Programme zu schreiben Ausnahmen als Objekte verstehen

Mehr

7 Remote Method Invocation (RMI)

7 Remote Method Invocation (RMI) 7 Remote Method Invocation (RMI) Verteilte Java Anwendungen; Client/Server Architektur Vorläufige Version 188 c 2005 Peter Thiemann Server: Aufgaben erstellt remote objects Objekte, deren Methoden von

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter Remote- und Server-Programmierung Dr. Wolfgang Süß Thorsten Schlachter Remote Method Invocation (RMI) Servlets WebServices 2 Remote Method Invocation (RMI) Das Remote Method Invocation (RMI)-Framework

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Programmierung. Programme, Compiler, virtuelle Maschinen, Java

Programmierung. Programme, Compiler, virtuelle Maschinen, Java Programmierung Programme, Compiler, virtuelle Maschinen, Java Programme Ein Programm ist eine Folge von Anweisungen, die einem Computer sagen, was er tun soll tuwas.c for(int i=0; i=0; i

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

Smalltalk vs. Java c Chris Burkert 2002. Smalltalk versus Java

Smalltalk vs. Java c Chris Burkert 2002. Smalltalk versus Java Smalltalk versus Java Gliederung Einführung Geschichte sprachliche Aspekte technische Aspekte theoretische Aspekte praktische Aspekte Fazit Einführung - Merkmale Objektorientierung Einführung - Merkmale

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

Bachelor-Klausur im WiSe 2013 / 2014. Grundlagen der Informatik

Bachelor-Klausur im WiSe 2013 / 2014. Grundlagen der Informatik Fachhochschule Kaiserslautern FB Informatik und Mikrosystemtechnik Prof. Dr. M. Duque-Antón Bachelor-Klausur im WiSe 2013 / 2014 im Fach Grundlagen der Informatik Angewandte Informatik / Medieninformatik

Mehr

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

Mehr

Übungen zur Android Entwicklung

Übungen zur Android Entwicklung Übungen zur Android Entwicklung Aufgabe 1 Hello World Entwickeln Sie eine Hello World Android Applikation und laden diese auf den Emulator. Leiten Sie hierfür die Klasse android.app.activity ab und entwerfen

Mehr

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

TCP/IP Programmierung. C# TimeServer Java6 TimeClient TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

Mehr

// Zeigt den insgesamt einbezahlten Betrag auf der Bank. // Muss 1600 GE sein. System.out.println("Current Bank balance: " + b.

// Zeigt den insgesamt einbezahlten Betrag auf der Bank. // Muss 1600 GE sein. System.out.println(Current Bank balance:  + b. / Testtreiberklasse, welche das Bankensystem testet. Es werden neue Bankkonten angelegt und Geld deponiert, abgehoben und transferiert. public class Main { / Main Methode fuehrt bestimmte Testfaelle aus.

Mehr

Das Monitorkonzept Brinch-Hansen

Das Monitorkonzept Brinch-Hansen Das Monitorkonzept (nach Hoare/Brinch Brinch-Hansen 1974) Nur ein Prozess bzw. Thread kann zu einem bestimmten Zeitpunkt im Monitor aktiv sein => gegenseitiger Ausschluss, mutual exclusion. Geschützte

Mehr

Objektorientierte Programmierung OOP Programmieren mit Java

Objektorientierte Programmierung OOP Programmieren mit Java Aufgaben: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge Objektorientierte Programmierung OOP Programmieren mit Java 1. Installation von Java 2. Erstes Java Programm Hello World 3. Dreimal Hallo Olten 2

Mehr

Objektorientierte Software-Entwicklung

Objektorientierte Software-Entwicklung Objektorientierte Software-Entwicklung Priv.-Doz. Dr. Rolf Hennicker 08.01.2003 AWT und Swing AWT (Abstract Window Toolkit) und Swing 2 AWT (Abstract Window Toolkit) und Swing AWT und Swing bieten eine

Mehr

Einführung in ActionScript

Einführung in ActionScript Fachbereich Mathematik und Informatik Softwareprojekt: Spieleprogrammierung Einführung in ActionScript Do, Hoang Viet(do@mi.fu-berlin.de) Freie Universität Berlin, SoSe 2012 Agenda Allgemeine Einführung

Mehr

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel FB Physikalische Technik Musterlösungen Teil 4 Aufgabe 1 package teil4; import javax.swing.*; public class Ei { int haltung, ident; String

Mehr

JOGGA Der Jogging-Companion

JOGGA Der Jogging-Companion JOGGA Der Jogging-Companion GLIEDERUNG: (1) Idee (2) Funktionen (3) Codebeispiele IDEE: Jeder Jogger kennt das Problem: Man rafft sich auf um eine Runde zu laufen, schwitzt während dessen ohne Ende und

Mehr

DECUS München Symposium - Bonn Java und OpenVMS Hartmut Becker

DECUS München Symposium - Bonn Java und OpenVMS Hartmut Becker DECUS München Symposium - Bonn Java und OpenVMS Hartmut Becker März 2000 Seite 1 Themen Aktueller Stand von Java auf OpenVMS Ein Projekt mit Java - ein Erfahrungsbericht Tipps und Hinweise Java und OpenVMS

Mehr

Einbindung dynamischer Sprachen in Java

Einbindung dynamischer Sprachen in Java Einbindung dynamischer Sprachen in Java The Beast in Me? Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Steffen Schluff Papick Garcia Taboada Version: 1.0 www.oio.de info@oio.de Gliederung

Mehr

Ein Manager mit CardLayout layout/cards.java

Ein Manager mit CardLayout layout/cards.java 201 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Ein Manager mit CardLayout layout/cards.java CardLayout dient vor allem zum Aufbau von Inspektoren: In der gleichen Fläche soll je nach

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

4. Servlets Ein kleiner Einstieg. Kurze Java Historie. Erinnerung: Internet Anwendungen. Konzept eines Seitenaufrufs

4. Servlets Ein kleiner Einstieg. Kurze Java Historie. Erinnerung: Internet Anwendungen. Konzept eines Seitenaufrufs 4. s Ein kleiner Einstieg Erinnerung: HTTP und HTML Idee von Web n und Containern Erstellung einfacher s (zunächst software technisch übelst unstrukturiert) Literatur: B. Basham, K. Sierra, B. Bates, Head

Mehr

Web-Services Implementierung mit Java

Web-Services Implementierung mit Java Web-Services Implementierung mit Java J. Heinzelreiter WS 2004/05 Java-APIs für Web-Services (1) Anwendungs-Code JAXR JAXM JAX-RPC SAAJ SOAP/SwA JWSDL WSDL XML/XML-Schema Web-Services/Java - 2 Java-APIs

Mehr

Grundlagen der Informatik Übungen 1.Termin

Grundlagen der Informatik Übungen 1.Termin Grundlagen der Informatik Übungen 1.Termin Dr. Ing Natalia Currle-Linde Institut für Höchstleistungsrechnen 1 Kurzvorstellung Dr.-Ing. Natalia Currle-Linde linde@hlrs.de Institut für Höchstleistungsrechnen

Mehr

Hadoop. Simon Prewo. Simon Prewo

Hadoop. Simon Prewo. Simon Prewo Hadoop Simon Prewo Simon Prewo 1 Warum Hadoop? SQL: DB2, Oracle Hadoop? Innerhalb der letzten zwei Jahre hat sich die Datenmenge ca. verzehnfacht Die Klassiker wie DB2, Oracle usw. sind anders konzeptioniert

Mehr

CORBA Implementierung von Client und Server

CORBA Implementierung von Client und Server CORBA Implementierung von Client und Server J. Heinzelreiter WS 2003/04 Implementierung des Clients Initialisierung und Freigabe des ORBs. Mapping von Interfaces. Behandlung von Objektreferenzen. Verwaltung

Mehr

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen

Mehr

Webtests und JMeter. Technologien: Überblick Funktionale Tests: Simplelenium Performance Messungen: JMeter Projekt Setup: Gradle, Jenkins

Webtests und JMeter. Technologien: Überblick Funktionale Tests: Simplelenium Performance Messungen: JMeter Projekt Setup: Gradle, Jenkins Webtests und JMeter Technologien: Überblick Funktionale Tests: Simplelenium Performance Messungen: JMeter Projekt Setup: Gradle, Jenkins Raimond Reichert Webtests: Motivation Erhöhte Regress-Sicherheit

Mehr

Multithreading ab Java 5: Die neuen Concurrency APIs

Multithreading ab Java 5: Die neuen Concurrency APIs Multithreading ab Java 5: Die neuen Concurrency APIs Java Concurrency Spezifiziert in JSR166 Ab Java 5 fester Bestandteil von Java Durch zusätzliche Library auch vor Java 5 vorhanden backport-util-concurrent

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Programmiermethodik. Übung 13

Programmiermethodik. Übung 13 Programmiermethodik Übung 13 Sommersemester 2010 Fachgebiet Software Engineering andreas.scharf@cs.uni-kassel.de Agenda Vorstellung Musterlösung HA9 Mancala Showroom Client/Server Kommunikation in Java

Mehr

Programmiervorkurs 2008

Programmiervorkurs 2008 Programmiervorkurs 2008 Es steht noch was aus Wir erinnern uns, jede Methode beginnt mit: public static Aber jetzt wollen wir endlich klären, was das eigentlich ist Fertig? Programmiervorkurs WS 2009 Fachbereich

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Programmieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Timer. Sockets.

Programmieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Timer. Sockets. Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 26 Timer Sockets SMTP-Client 2 / 26 Timer Mit einem Timer können bestimmte Aktionen periodisch wiederkehrend durchgeführt

Mehr

JMangler. Frithjof Kurtz. Universität Bonn, Seminar Softw aretechnologie WS 03/04, Jmangler Frithjof Kurtz 1

JMangler. Frithjof Kurtz. Universität Bonn, Seminar Softw aretechnologie WS 03/04, Jmangler Frithjof Kurtz 1 JMangler Frithjof Kurtz Universität Bonn, Seminar Softw aretechnologie WS 03/04, Jmangler Frithjof Kurtz 1 JMangler Vortragsgliederung Motivation Java Grundlagen JMangler Grundlagen Transformationen Algorithmen

Mehr

Einführung in AOP. Rico Schiekel - 012816 rschiekel@web.de. Agenda. Kernproblem der Objekt Orientierung

Einführung in AOP. Rico Schiekel - 012816 rschiekel@web.de. Agenda. Kernproblem der Objekt Orientierung Einführung in AOP Informatikseminar Rico Schiekel - 012816 rschiekel@web.de Fachhochschule Ravensburg Weingarten Hochschule für Technik und Sozialwesen Einführung in AOP Agenda Kernproblem der Objekt Orientierung

Mehr

Fehler die bei der Programmerstellung passieren können teilweise vom Compiler erkannt werden

Fehler die bei der Programmerstellung passieren können teilweise vom Compiler erkannt werden Exceptions Fehler die bei der Programmerstellung passieren können teilweise vom Compiler erkannt werden int a; double b=10; a = 10 * b; System.out.println(a); Fehler die während der Programmausführung

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Programmieren II. Sockets. Vorlesung 16. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010. Sockets.

Programmieren II. Sockets. Vorlesung 16. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010. Sockets. Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 19 2 / 19 Über einen Socket kann eine Anwendung die Implementierung des Netzwerkprotokolls des darunter liegenden Betriebssystems

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen Grundlagen der Programmierung Prof. H. Mössenböck 10. Klassen Motivation Wie würde man ein Datum speichern (z.b. 13. November 2004)? 3 Variablen int da; String month; int ear; Unbequem, wenn man mehrere

Mehr

synedra View Embedded Michael Doppler, synedra it GmbH

synedra View Embedded Michael Doppler, synedra it GmbH <m.doppler@synedra.com> synedra View Embedded Michael Doppler, synedra it GmbH 2015 synedra information technologies Zusammenfassung IndiesemDokumentwirdbeschrieben,wiesynedraViewEmbeddedinApplikationenandererHerstellerintegriertwerdenkann.

Mehr

10 Management der OSGi Service Platform

10 Management der OSGi Service Platform 165 10 Management der OSGi Service Platform In den Tutorials der zurückliegenden Kapitel haben Sie die Equinox- Konsole bereits als einfachen Management Agent kennengelernt, mit dem Sie die OSGi Service

Mehr

Ein- und Ausgabe in Java

Ein- und Ausgabe in Java Ein- und Ausgabe in Java Das Package java.io enthält eine Sammlung von Klassen, die die Kommunikation mit dem Computer steuern Einlesen und Ausgeben von Dateien Ausgabe auf dem Bildschirm Einlesen von

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

Java Desktop Anwendungen

Java Desktop Anwendungen 5 1 Java Desktop Anwendungen das Problem: Desktop-Anwendungen werden mit Hilfe der Swing- Bibliothek programmiert, aber die Swing-Bibliothek ist riesig und unübersichtlich es gab kein Programmiergerüst

Mehr

Turtlegrafik und Game-Apps für Smartphones und Tablets

Turtlegrafik und Game-Apps für Smartphones und Tablets Game-Apps für Smartphones und Tablets Turtlegrafik und Game-Apps für Smartphones und Tablets www.java-online.ch www.adroid-turtlegrafik.ch www.jdroid.ch Programm 1. Teil: Vortrag mit Demos Warum Smartphone

Mehr

Java Batch Der Standard für's Stapeln

Java Batch Der Standard für's Stapeln Java Batch Der Standard für's Stapeln Berlin Expert Days 18.09.2015 Dirk Weil, GEDOPLAN GmbH Dirk Weil GEDOPLAN GmbH, Bielefeld GEDOPLAN IT Consulting Konzeption und Realisierung von IT-Lösungen GEDOPLAN

Mehr

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer) Programmieren I Grundlagen von JAVA Dr. Klaus Höppner Hello World in JAVA Hochschule Darmstadt WS 2007/2008 Elementare Datentypen 1 / 17 2 / 17 Eigenschaften von JAVA Prinzipieller Ablauf Plattform-und

Mehr

Classloading in Eclipse

Classloading in Eclipse Finden und Gefunden werden Classloading in Eclipse Martin Lippert, lippert@acm.org, www.martinlippert.com Mit der Version 3.0 liefert die Eclipse-Platform nicht nur eine umfangreiche Java-IDE aus, sondern

Mehr

Erste Schritte zum lauffähigen Java Programm

Erste Schritte zum lauffähigen Java Programm Erste Schritte zum lauffähigen Java Programm Diese kleine Einführung ist eine Hilfe für Studenten der Vorlesung SWT I zur Meisterung der sich ergebenden Hürden bei der Erstellung eines ersten kleinen Java-Programms.

Mehr

Web-Services Implementierung

Web-Services Implementierung Web-Services Implementierung Praktikum Informationsintegration 8.11.2005 Agenda Aktueller Stand / Abgabe Implementierung Wie geht das mit Java und Tomcat? Service Client 2 Abgabe Teil 1 Ein paar Zahlen

Mehr

Das Build Tool Ant. Sebastian Mancke, mancke@mancke-software.de

Das Build Tool Ant. Sebastian Mancke, mancke@mancke-software.de Das Build Tool Ant Sebastian Mancke, mancke@mancke-software.de Grundlagen Motivation Bei der Übersetzung und Pflege von Software treten viele, gleich bleibende Arbeitsschritte auf. Übersetzen des Codes

Mehr

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Ludwig-Maximilians-Universität München Institut für Informatik Programmierung und Softwaretechnik (PST) Prof. Wirsing 6. Mai 2009 1 Der Name Java

Mehr