Java-Tipps: Unterschied zwischen den Versionen
Codica (Diskussion | Beiträge) |
Codica (Diskussion | Beiträge) |
||
(26 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
== Java 2 Standard Edition == | == Java 2 Standard Edition == | ||
+ | === Installation === | ||
+ | |||
+ | ==== auf einem Raspberry Pi ==== | ||
+ | |||
+ | Zur Installation von Oracle Java 8 JDK auf einem [[Raspberry Pi]] siehe | ||
+ | * http://www.gridtec.at/java-8-auf-dem-raspberry-pi-installieren-und-testen/ | ||
+ | |||
+ | ==== aus dem webupd8team-Repository ==== | ||
+ | sudo add-apt-repository ppa:webupd8team/java | ||
+ | sudo aptitude update && sudo aptitude install oracle-java8-installer | ||
+ | |||
+ | Siehe | ||
+ | * [http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html Installationsanleitung mit PPA für Linux Mint 17.1] | ||
+ | * [http://neurobin.github.io/OracleJDKInstaller/ Script zum Installieren] (ungeprüft) | ||
=== Java-Sprachkonstrukte === | === Java-Sprachkonstrukte === | ||
Zeile 14: | Zeile 28: | ||
* Umfangreiches Verzeichnis freier Javaapplikationen findet sich bei [http://java-apps.org/ Java-Apps.org]. | * Umfangreiches Verzeichnis freier Javaapplikationen findet sich bei [http://java-apps.org/ Java-Apps.org]. | ||
+ | === Java auf dem Desktop === | ||
+ | |||
+ | ==== Links zu Java-Desktop-Anwendungen ==== | ||
+ | |||
+ | Java-Desktop-Anwendungen können sich unter [[Windows]] so registrieren, dass sie mit Hilfe von Links aus dem Browser aufgerufen werden können. | ||
+ | |||
+ | Siehe [[Windows#Aufruf_von_Programmen_mit_URLs]] | ||
+ | |||
+ | |||
+ | Das ist nicht zu verwechseln mit Protokoll-Handlern, die Aufrufe von unbekannten Protokollen aus dem Java-Programm selbst behandeln: | ||
+ | * [http://mjremijan.blogspot.com/2012/02/create-your-own-java-url-handlers.html Protokoll-Handler für Java-interne URL-Aufrufe] | ||
=== Dokumentation zu J2SE === | === Dokumentation zu J2SE === | ||
Zeile 40: | Zeile 65: | ||
=== Kommandozeilenparser === | === Kommandozeilenparser === | ||
+ | * [https://picocli.info/ picocli] ist eine Bibliothek zum Parsen der Kommandozeile mit vielen Funktionen, u.a. integrierter [[Tab-Completion]] | ||
* [http://jewelcli.sourceforge.net/usage.html JewelCLI] ist ein OptionsParser, der auf Annotationen setzt. | * [http://jewelcli.sourceforge.net/usage.html JewelCLI] ist ein OptionsParser, der auf Annotationen setzt. | ||
− | * [http://commons.apache.org/cli/ CLI] ist eine [[Apache]]-Komponente, die die Verarbeitung von Kommandozeilenparametern erleichtert. | + | * [http://commons.apache.org/cli/ Commons CLI] ist eine [[Apache]]-Komponente, die die Verarbeitung von Kommandozeilenparametern erleichtert. |
− | * [http://jopt-simple. | + | * [http://jopt-simple.github.io/jopt-simple/examples.html JOpt-Simple] |
=== Webanwendungen === | === Webanwendungen === | ||
Zeile 50: | Zeile 76: | ||
** [http://www.netbeans.org/kb/docs/web/quickstart-webapps-gwt.html Anleitung zur Nutzung des Google Web Toolkit] mit der [[Netbeans]]-IDE. | ** [http://www.netbeans.org/kb/docs/web/quickstart-webapps-gwt.html Anleitung zur Nutzung des Google Web Toolkit] mit der [[Netbeans]]-IDE. | ||
+ | ==== Simple HTTP-Server ==== | ||
+ | |||
+ | Das JDK kommt bereits mit einem eingebauten einfachen HTTP-Server: | ||
+ | * https://javadoc.scijava.org/Java13/jdk.httpserver/com/sun/net/httpserver/package-summary.html | ||
+ | * https://javadoc.scijava.org/Java13/jdk.httpserver/com/sun/net/httpserver/spi/HttpServerProvider.html | ||
+ | * https://dzone.com/articles/simple-http-server-in-java | ||
+ | * https://gist.github.com/gitawego/14e15456e4d36a26aac7695648565329 | ||
+ | * https://www.logicbig.com/tutorials/core-java-tutorial/http-server/http-server-basic.html | ||
+ | |||
+ | Noch mehr Basic ist die Programmierung auf den IO-Sockets: | ||
+ | * https://dev.to/mateuszjarzyna/build-your-own-http-server-in-java-in-less-than-one-hour-only-get-method-2k02 | ||
+ | |||
+ | |||
+ | ==== Vaadin ==== | ||
+ | |||
+ | Auf dem Google Web Toolkit basiert auch das serverseitige Webapplikationsframework [https://vaadin.com/docs/ Vaadin]. Auch hier wird serverseitig Java geschrieben, jedoch auf dem Browser als Javascript ausgeführt. | ||
+ | |||
+ | Siehe | ||
+ | * https://www.heise.de/developer/artikel/Einfuehrung-in-die-Entwicklung-mit-Vaadin-Teil-1-3594394.html?seite=all | ||
+ | * [https://developer.ibm.com/dwblog/2017/what-is-vaadin-java-web-applications/ Überblick über Vaadin auf developer.ibm.com mit Nachweisen zu IDEs (Netbeans und Eclipse)] | ||
+ | * [https://dzone.com/refcardz/getting-started-vaadin Getting Started auf dzone], geschrieben von Vaadin-Mitarbeitern | ||
+ | |||
+ | ==== sparkjava ==== | ||
+ | |||
+ | [https://sparkjava.com Sparkjava] ist ein Micro-Framework, um ähnlich einer funktionalen Herangehensweise wie in [[Node.js]] Anfragen von Web-Clients zu bedienen. | ||
+ | |||
+ | Siehe | ||
+ | * https://sparktutorials.github.io/2016/06/10/spark-basic-structure.html | ||
+ | * https://zeroturnaround.com/rebellabs/sparkjava-is-an-amazing-java-web-framework-do-you-really-need-it/ | ||
+ | |||
+ | ==== JavaLite ActiveWeb ==== | ||
+ | |||
+ | Siehe http://javalite.io/activeweb | ||
+ | |||
+ | ==== molecule ==== | ||
+ | [http://molecule.vtence.com/ Molecule] ist ein kleines Framework für Java, das einen Java-Webserver (Simple oder Undertow) integriert und ähnlich wie [[Express]] für [[Node.js]]-Anwendungen zu benutzen ist. | ||
+ | |||
+ | Siehe | ||
+ | * https://github.com/testinfected/molecule | ||
=== Dateiverwaltung === | === Dateiverwaltung === | ||
Zeile 67: | Zeile 132: | ||
==== JSON ==== | ==== JSON ==== | ||
+ | * [https://github.com/stleary/JSON-java org.json or JSON-java] | ||
* [http://code.google.com/p/json-simple/ Json.Simple], Java Library to convert from and to JSON | * [http://code.google.com/p/json-simple/ Json.Simple], Java Library to convert from and to JSON | ||
* Siehe auch [http://jsontools.berlios.de/ JSONTools] | * Siehe auch [http://jsontools.berlios.de/ JSONTools] | ||
Zeile 77: | Zeile 143: | ||
* [http://jexcelapi.sourceforge.net/ jExcelAPI] und | * [http://jexcelapi.sourceforge.net/ jExcelAPI] und | ||
* [http://poi.apache.org/ Apache POI] (auch für das [http://poi.apache.org/spreadsheet/index.html 2007er-XML-Format]) | * [http://poi.apache.org/ Apache POI] (auch für das [http://poi.apache.org/spreadsheet/index.html 2007er-XML-Format]) | ||
+ | ** Siehe zu Apache POI die [https://www.callicoder.com/java-read-excel-file-apache-poi/ Anleitung zum Lesen von Excel-Dateien in Java] | ||
gelesen und geschrieben werden. | gelesen und geschrieben werden. | ||
Zeile 82: | Zeile 149: | ||
Für das Open Document Format, das v.a. durch [[OpenOffice]]/[[LibreOffice]] bekannt ist, existiert die [http://incubator.apache.org/odftoolkit/simple/document/cookbook/index.html#Table Simple API des ODFToolkits]. | Für das Open Document Format, das v.a. durch [[OpenOffice]]/[[LibreOffice]] bekannt ist, existiert die [http://incubator.apache.org/odftoolkit/simple/document/cookbook/index.html#Table Simple API des ODFToolkits]. | ||
+ | |||
+ | === Http Push Technology / Long Polling === | ||
+ | |||
+ | Siehe | ||
+ | * http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/async-servlet/async-servlets.html | ||
=== Java Bericht Generator === | === Java Bericht Generator === | ||
+ | ==== Allgemeines ==== | ||
Für die Erstellung von Berichten (Reports aus Datenbanken) gibt es unterschiedliche [[Open Source]]-Produkte: | Für die Erstellung von Berichten (Reports aus Datenbanken) gibt es unterschiedliche [[Open Source]]-Produkte: | ||
− | * | + | |
+ | ** mit graphischem Designer [http://community.jaspersoft.com/wiki/getting-started-ireport-designer iReport Designer] | ||
* [http://datavision.sourceforge.net/ DataVision], feature-reich, mit [[JRuby]] und anderer Scripting-Unterstützung, liest Datenbanken, [[Excel]] und Textdateien, allerdings schon seit 2009 wohl keine Fortentwicklung | * [http://datavision.sourceforge.net/ DataVision], feature-reich, mit [[JRuby]] und anderer Scripting-Unterstützung, liest Datenbanken, [[Excel]] und Textdateien, allerdings schon seit 2009 wohl keine Fortentwicklung | ||
* [http://community.pentaho.com/projects/reporting/ Pentaho Reporting] | * [http://community.pentaho.com/projects/reporting/ Pentaho Reporting] | ||
Zeile 93: | Zeile 167: | ||
* BIRT, integriert in [[Eclipse]] | * BIRT, integriert in [[Eclipse]] | ||
* [http://www.xtuple.com/openrpt xTuple OpenRPT], Report Generator für PDF | * [http://www.xtuple.com/openrpt xTuple OpenRPT], Report Generator für PDF | ||
+ | |||
+ | * [http://www.lug-kr.de/wiki/JasperReports Vergleich verschiedener Berichtstools] | ||
+ | |||
+ | ==== BIRT ==== | ||
+ | |||
+ | https://eclipse.github.io/birt-website/docs/what-is-birt | ||
+ | |||
+ | ==== JasperReports ==== | ||
+ | [http://community.jaspersoft.com/project/jasperreports-library JasperReports] ist wohl der Platzhirsch unter den Open Source - Berichtsgeneratoren für Java. | ||
+ | |||
+ | Siehe auch | ||
+ | * [http://www.alexander-merz.com/41.html Einführung in JasperReports von Alexander Merz] | ||
=== Inversion of Control/Dependency Injection === | === Inversion of Control/Dependency Injection === | ||
Zeile 146: | Zeile 232: | ||
* [https://developer.mozilla.org/en/JavaXPCOM/Embedding_Mozilla_in_a_Java_Application_using_JavaXPCOM Java als Controller für Firefox] mittels JavaXPCOM | * [https://developer.mozilla.org/en/JavaXPCOM/Embedding_Mozilla_in_a_Java_Application_using_JavaXPCOM Java als Controller für Firefox] mittels JavaXPCOM | ||
− | * Eine ganz andere Lösung ist das Selenium - Framework zur Steuerung eines Browsers. | + | * Eine ganz andere Lösung ist das [[Selenium]] - Framework zur Steuerung eines Browsers. |
** Wenn man Javascript deaktivieren will, hilft bei Nutzung von [[Firefox]] [http://stackoverflow.com/questions/1285917/how-to-disable-javascript-when-using-selenium diese Lösung]. | ** Wenn man Javascript deaktivieren will, hilft bei Nutzung von [[Firefox]] [http://stackoverflow.com/questions/1285917/how-to-disable-javascript-when-using-selenium diese Lösung]. | ||
+ | |||
+ | === Aufruf des Standard-Browsers === | ||
+ | |||
+ | Mit <code>java.awt.Desktop</code> kann der Standardbrowser des Betriebssystems aufgerufen werden.<ref>Siehe http://openbook.rheinwerk-verlag.de/javainsel/javainsel_11_008.html#dodtpe70eade2-b4f8-477e-9f46-1e4f09d87aba .</ref> | ||
+ | Unter Windows können für bestimmte URLs auch eigene Anwendungen registriert werden (siehe [[Windows#Aufruf von Programmen mit URLs]]). Dann können mit der <code>java.awt.Desktop</code>-Methode auch andere Programme als der Browser gestartet werden. | ||
=== Databases === | === Databases === | ||
Zeile 154: | Zeile 245: | ||
* Ein [http://java.sun.com/docs/books/tutorial/jdbc/overview/index.html Überblick über JDBC/SQL] findet sich auf java.sun.com. | * Ein [http://java.sun.com/docs/books/tutorial/jdbc/overview/index.html Überblick über JDBC/SQL] findet sich auf java.sun.com. | ||
* [http://www.netbeans.org/kb/55/derby-demo.html Mit NetBeans-IDE auf Datenbanken zugreifen] | * [http://www.netbeans.org/kb/55/derby-demo.html Mit NetBeans-IDE auf Datenbanken zugreifen] | ||
+ | |||
+ | |||
+ | ===== Query-Builder ===== | ||
+ | |||
+ | Um die Tippfehler von SQL-Queries in Java-Code zu reduzieren, gibt es leicht- oder schwergewichtige Query-Builder, bei denen die SQL-Sprachkonstrukte in Java-Methoden oder -Eigenschaften abgebildet werden. Vertreter sind z.B. | ||
+ | * [https://www.jooq.org/ jOOQ] - mächtig, unterstützt auch SQL-Dialekte der einzelnen Datenbanken, kostenlos (nur) für Open Source Datenbanken | ||
+ | * [https://openhms.sourceforge.io/sqlbuilder/ OpenHMS SqlBuilder] - leichtgewichtiger Query-Builder | ||
+ | * [http://www.querydsl.com/ QueryDSL ] | ||
+ | * [http://www.mybatis.org/mybatis-3/getting-started.html MyBatis] | ||
+ | * [https://calcite.apache.org/apidocs/org/apache/calcite/sql/util/SqlBuilder.html Apache Calcite SqlBuilder class] - Low level SQL-Query-Unterstützung | ||
+ | |||
+ | Siehe auch [https://calcite.apache.org/docs/ Apache Calcite] - ein Datenbank-Adapter | ||
+ | |||
+ | ===== Object Relational Mapper ===== | ||
+ | Es gibt schwergewichtige Zwischenschichten, die SQL-Datensätze auf Java-Objekte spiegeln. Siehe z.B. | ||
+ | * [[Hibernate]] | ||
+ | * [http://javalite.io/activejdbc ActiveJDBC] | ||
==== SQL ==== | ==== SQL ==== | ||
Zeile 167: | Zeile 275: | ||
* [http://today.java.net/pub/a/today/2006/05/23/ejb3-persistence-api-for-client-side-developer.html Addressbuch mit Java Persistence API, Hibernate und HSQLDB] | * [http://today.java.net/pub/a/today/2006/05/23/ejb3-persistence-api-for-client-side-developer.html Addressbuch mit Java Persistence API, Hibernate und HSQLDB] | ||
* [https://glassfish.dev.java.net/javaee5/persistence/persistence-example.html Glassfish-Example] (JavaSE mit/ohne Netbeans oder JavaEE] | * [https://glassfish.dev.java.net/javaee5/persistence/persistence-example.html Glassfish-Example] (JavaSE mit/ohne Netbeans oder JavaEE] | ||
+ | |||
+ | * [https://www.thoughts-on-java.org/hibernate-best-practices/ JPA Hibernate Best Practices] | ||
=== XML === | === XML === | ||
Zeile 185: | Zeile 295: | ||
** http://www.integis.ch/documents/ISem_Opprecht_Overlay_2002-02-28.pdf | ** http://www.integis.ch/documents/ISem_Opprecht_Overlay_2002-02-28.pdf | ||
* Übrigens: Flächen eines Polygons kann man auch mechanisch mit einem [http://bluemich.net/rechner/rmplanimeter.htm Planimeter] messen. | * Übrigens: Flächen eines Polygons kann man auch mechanisch mit einem [http://bluemich.net/rechner/rmplanimeter.htm Planimeter] messen. | ||
+ | |||
+ | === Java Swing === | ||
+ | |||
+ | Die GUI-Bibliothek Swing wird wohl nicht mehr weiterentwickelt. | ||
+ | |||
+ | ==== JLayeredPane ==== | ||
+ | |||
+ | Für die Nutzung von JLayeredPane hilft wohl ein [http://stackoverflow.com/questions/16025874/jlayeredpane-not-respecting-layers spezialisierter LayoutManager]. | ||
=== Java 3D === | === Java 3D === | ||
Zeile 205: | Zeile 323: | ||
== Java 2 Mobile Edition == | == Java 2 Mobile Edition == | ||
Siehe [[J2ME]] | Siehe [[J2ME]] | ||
+ | |||
+ | == Java Servlets == | ||
+ | |||
+ | Java Servlets benötigen eine Ausführungsumgebung wie Apache [[Tomcat]]. | ||
+ | |||
+ | |||
== Java-Einstieg == | == Java-Einstieg == | ||
Zeile 227: | Zeile 351: | ||
+ | |||
+ | Siehe auch [[Softwareentwicklung]] | ||
---- | ---- | ||
− | + | <references/> | |
− | + | [[Category:Java]] | |
[[Category:Java-Tipps]] | [[Category:Java-Tipps]] | ||
[[Category:Softwareentwicklung]] | [[Category:Softwareentwicklung]] | ||
[[Category:Informationstechnik]] | [[Category:Informationstechnik]] | ||
[[Category:OldCt]] | [[Category:OldCt]] |
Aktuelle Version vom 24. April 2023, 09:32 Uhr
Siehe oldCt:Java-Tipps
Java 2 Standard Edition
Installation
auf einem Raspberry Pi
Zur Installation von Oracle Java 8 JDK auf einem Raspberry Pi siehe
aus dem webupd8team-Repository
sudo add-apt-repository ppa:webupd8team/java sudo aptitude update && sudo aptitude install oracle-java8-installer
Siehe
Java-Sprachkonstrukte
Lambdas
Siehe
Java-Anwendungen
- Umfangreiches Verzeichnis freier Javaapplikationen findet sich bei Java-Apps.org.
Java auf dem Desktop
Links zu Java-Desktop-Anwendungen
Java-Desktop-Anwendungen können sich unter Windows so registrieren, dass sie mit Hilfe von Links aus dem Browser aufgerufen werden können.
Siehe Windows#Aufruf_von_Programmen_mit_URLs
Das ist nicht zu verwechseln mit Protokoll-Handlern, die Aufrufe von unbekannten Protokollen aus dem Java-Programm selbst behandeln:
Dokumentation zu J2SE
- Offizielle Dokumentation
- Eclipse-Help
- J2SE V6 API-JavaDoc
- Schöne Java-FAQ mit vielen Problemlösungen.
- Openbook zu Java2 (deutsch).
- Fortsetzung des Open Books für Entwickler mit guten Grundkenntnissen
- Java Glossary mit vielen Beispielen
Entwicklungsumgebung
- Netbeans ist eine Plattformübergreifende Software. Sie findet sich z.B. auch im Repository von Ubuntu.
- Eine Einführung in Maven 2 findet sich auf JavaWorld.com. Maven 2 ist auch in Netbeans integriert.
JUnit-Tests
- Auf JUnit.org finden sich auch die Java-API-Docs.
- http://stackoverflow.com/questions/309396/java-how-to-test-methods-that-call-system-exit
- Neben JUnit ist jMock ein großer Helfer beim schreiben von automatischen Tests. Eine Alternative, um "gefälschte" Java-Objekte zu nutzen, ist EasyMock.
Kommandozeilenparser
- picocli ist eine Bibliothek zum Parsen der Kommandozeile mit vielen Funktionen, u.a. integrierter Tab-Completion
- JewelCLI ist ein OptionsParser, der auf Annotationen setzt.
- Commons CLI ist eine Apache-Komponente, die die Verarbeitung von Kommandozeilenparametern erleichtert.
- JOpt-Simple
Webanwendungen
- Siehe Apache Cocoon
- HTML kann man mit deskriptivem Java-Code erzeugen: Dafür steht Apache ECS zur Verfügung.
- Die Übersetzung von Java nach JavaScript leistet das Google Web Toolkit.
- Anleitung zur Nutzung des Google Web Toolkit mit der Netbeans-IDE.
Simple HTTP-Server
Das JDK kommt bereits mit einem eingebauten einfachen HTTP-Server:
- https://javadoc.scijava.org/Java13/jdk.httpserver/com/sun/net/httpserver/package-summary.html
- https://javadoc.scijava.org/Java13/jdk.httpserver/com/sun/net/httpserver/spi/HttpServerProvider.html
- https://dzone.com/articles/simple-http-server-in-java
- https://gist.github.com/gitawego/14e15456e4d36a26aac7695648565329
- https://www.logicbig.com/tutorials/core-java-tutorial/http-server/http-server-basic.html
Noch mehr Basic ist die Programmierung auf den IO-Sockets:
Vaadin
Auf dem Google Web Toolkit basiert auch das serverseitige Webapplikationsframework Vaadin. Auch hier wird serverseitig Java geschrieben, jedoch auf dem Browser als Javascript ausgeführt.
Siehe
- https://www.heise.de/developer/artikel/Einfuehrung-in-die-Entwicklung-mit-Vaadin-Teil-1-3594394.html?seite=all
- Überblick über Vaadin auf developer.ibm.com mit Nachweisen zu IDEs (Netbeans und Eclipse)
- Getting Started auf dzone, geschrieben von Vaadin-Mitarbeitern
sparkjava
Sparkjava ist ein Micro-Framework, um ähnlich einer funktionalen Herangehensweise wie in Node.js Anfragen von Web-Clients zu bedienen.
Siehe
- https://sparktutorials.github.io/2016/06/10/spark-basic-structure.html
- https://zeroturnaround.com/rebellabs/sparkjava-is-an-amazing-java-web-framework-do-you-really-need-it/
JavaLite ActiveWeb
Siehe http://javalite.io/activeweb
molecule
Molecule ist ein kleines Framework für Java, das einen Java-Webserver (Simple oder Undertow) integriert und ähnlich wie Express für Node.js-Anwendungen zu benutzen ist.
Siehe
Dateiverwaltung
Das Erstellen von Windows-Verknüpfungen ist nicht mit Bord-Mitteln von Java zu lösen. Aber es gibt schon fertigen Code im Web. "JShortCut" soll auch helfen.
Java WebStart
Web Services
- Einführung in Web Service Nutzung (Java-unabhängig)
- Java Web Services 1.6 Dokumentation
Datenformate
JSON
- org.json or JSON-java
- Json.Simple, Java Library to convert from and to JSON
- Siehe auch JSONTools
- JSON unter Android
- Jackson
MS-Excel
Dateien im Excel-Format können mit Hilfe der Open Source-APIs
- jExcelAPI und
- Apache POI (auch für das 2007er-XML-Format)
- Siehe zu Apache POI die Anleitung zum Lesen von Excel-Dateien in Java
gelesen und geschrieben werden.
OpenDocument Format (ODF)
Für das Open Document Format, das v.a. durch OpenOffice/LibreOffice bekannt ist, existiert die Simple API des ODFToolkits.
Http Push Technology / Long Polling
Siehe
Java Bericht Generator
Allgemeines
Für die Erstellung von Berichten (Reports aus Datenbanken) gibt es unterschiedliche Open Source-Produkte:
- mit graphischem Designer iReport Designer
- DataVision, feature-reich, mit JRuby und anderer Scripting-Unterstützung, liest Datenbanken, Excel und Textdateien, allerdings schon seit 2009 wohl keine Fortentwicklung
- Pentaho Reporting
- Nachfolger von JFreeReport[1]
- BIRT, integriert in Eclipse
- xTuple OpenRPT, Report Generator für PDF
BIRT
https://eclipse.github.io/birt-website/docs/what-is-birt
JasperReports
JasperReports ist wohl der Platzhirsch unter den Open Source - Berichtsgeneratoren für Java.
Siehe auch
Inversion of Control/Dependency Injection
Theorie und Anleitungen
- Inversion of Control ist ein Name für das Konzept von Container-Frameworks, die Software-Komponenten verbinden, ohne dass ein Eingriff in deren Sourcecode vorgenommen werden muss. Dies ist eine Methode, Plugins zu schaffen.
- Die Theorie von Inversion of Control (englisch) von Martin Fowler bietet einen Vergleich von Inversion of Control mit dem Service Locator Pattern.
- Eine weitere Anleitung zu Inversion of Control erstellt einen einfachen IoC-Container "BeanFactory".
Einzelne IoC-Container-Frameworks
- PicoContainer und seine Weiterentwicklung NanoContainer beherrschen Constructor Injection und Setter Injection. Außerdem bieten Sie Konfiguration durch Annotations.
- Spring beherrscht Setter Injection. Beim Spring Framework ist Inversion of Control nur einer von vielen Features.
- Die Nachfolger von Avalon bieten Interface Injection.
- Excalibur ist ein Nachfolgeprojekt Avalons unter dem Dach von Apache.
- DPML Metro ging aus Avalon hervor.
- HiveMind befindet sich derzeit im Übergang auf Version 2 (noch alpha-Version).
- Eine Liste von OpenSource IoC-Containern findet sich bei java-source.net.
FTP Client API
- Artikel über Java FTP Client APIs einschließlich in J2SE vorhandenem Standard
Statistik
Synchronisation
Siehe auch Synchronisation unter Linux
SyncML
vCard/vCalendar/iCal
- vCard/vCalendar home - http://www.imc.org/pdi/
- Open Source iCal4J-API
Bluetooth
Siehe Bluetooth-Tipps.
Java als HTTP-Client
- Standard-Java URL-Klasse
- Gegenüberstellung von Standard-HttpURLConnection und Apache-HttpClient
- Sun Tutorial für eine HTTP-Query
- Java als Controller für Firefox mittels JavaXPCOM
- Eine ganz andere Lösung ist das Selenium - Framework zur Steuerung eines Browsers.
- Wenn man Javascript deaktivieren will, hilft bei Nutzung von Firefox diese Lösung.
Aufruf des Standard-Browsers
Mit java.awt.Desktop
kann der Standardbrowser des Betriebssystems aufgerufen werden.[2]
Unter Windows können für bestimmte URLs auch eigene Anwendungen registriert werden (siehe Windows#Aufruf von Programmen mit URLs). Dann können mit der java.awt.Desktop
-Methode auch andere Programme als der Browser gestartet werden.
Databases
JDBC
- Ein Überblick über JDBC/SQL findet sich auf java.sun.com.
- Mit NetBeans-IDE auf Datenbanken zugreifen
Query-Builder
Um die Tippfehler von SQL-Queries in Java-Code zu reduzieren, gibt es leicht- oder schwergewichtige Query-Builder, bei denen die SQL-Sprachkonstrukte in Java-Methoden oder -Eigenschaften abgebildet werden. Vertreter sind z.B.
- jOOQ - mächtig, unterstützt auch SQL-Dialekte der einzelnen Datenbanken, kostenlos (nur) für Open Source Datenbanken
- OpenHMS SqlBuilder - leichtgewichtiger Query-Builder
- QueryDSL
- MyBatis
- Apache Calcite SqlBuilder class - Low level SQL-Query-Unterstützung
Siehe auch Apache Calcite - ein Datenbank-Adapter
Object Relational Mapper
Es gibt schwergewichtige Zwischenschichten, die SQL-Datensätze auf Java-Objekte spiegeln. Siehe z.B.
SQL
Java Persistence API
- Java Persistence API at Javasoft
- Java Persistence API Doc
- Folien zur Einführung in JPA
- MiniBeispiel einer Java-Persistence-API mit J2SE
- Addressbuch mit Java Persistence API, Hibernate und HSQLDB
- Glassfish-Example (JavaSE mit/ohne Netbeans oder JavaEE]
XML
- XStream (ein XML-Persistence-Library]
Mit der Open Source-Bibliothek itext lassen sich PDF nicht nur erstellen, sondern auch z.B. als reiner Text lesen.
Geometrie
- Flächenberechnung von Polygonen:
- Bilden von Schnittmengen von Polygonen:
- JTS Topology Suite ist eine Open Source Bibliothek, die auch das Verschneiden von Polygonen unterstützt.
- http://www.integis.ch/documents/ISem_Opprecht_Overlay_2002-02-28.pdf
- Übrigens: Flächen eines Polygons kann man auch mechanisch mit einem Planimeter messen.
Java Swing
Die GUI-Bibliothek Swing wird wohl nicht mehr weiterentwickelt.
JLayeredPane
Für die Nutzung von JLayeredPane hilft wohl ein spezialisierter LayoutManager.
Java 3D
- Eine kleine Anleitung mit Kurzbeispielen zu Java 3D findet sich hier.
- Einen Überblick über Java 3D verschafft [1].
Hardware-I/O
Für den Universal Serial Bus (USB) ist die Unterstützung durch Java nur für Linux vollständig:
- Javax.USB als Standardimplementation des JSR80.
Neuronale Netze
- Siehe Neuronale Netze.
Scripting
- Für JavaFX gibt es eine Anleitung für Java-Programmierer.
Java 2 Mobile Edition
Siehe J2ME
Java Servlets
Java Servlets benötigen eine Ausführungsumgebung wie Apache Tomcat.
Java-Einstieg
- Installation von
- JRE / JDK
- Netbeans
- Hello-World-Programm auf Konsole
- Ausgabe einer
for
-Schleife if
-Anweisung- Debuggen: Schritt-für-Schritt-Ablauf plus Variablen-Überwachung
- Ausgabe in eine Text-Datei / CSV-Datei
- Variante: Schreiben über Funktionen
- Variante: Schreiben über Klassenobjekte
- Ausgabe einer
- Swing
- Hello-World-Programm auf GUI
- Addition bei Drücken eines Knopfes
- Bearbeiten von Excel-Dateien mit Apache POI
Siehe auch Softwareentwicklung