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.sourceforge.net/index.html 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: |
| | | |
− | * [http://community.jaspersoft.com/project/jasperreports-library JasperReports] (wohl der Platzhirsch)
| + | |
| ** mit graphischem Designer [http://community.jaspersoft.com/wiki/getting-started-ireport-designer iReport Designer] | | ** 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 |
Zeile 94: |
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 147: |
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 155: |
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 168: |
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 186: |
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 206: |
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 228: |
Zeile 351: |
| | | |
| | | |
| + | |
| + | Siehe auch [[Softwareentwicklung]] |
| ---- | | ---- |
− | Siehe auch [[Softwareentwicklung]]
| + | <references/> |
− | | + | [[Category:Java]] |
| [[Category:Java-Tipps]] | | [[Category:Java-Tipps]] |
| [[Category:Softwareentwicklung]] | | [[Category:Softwareentwicklung]] |
| [[Category:Informationstechnik]] | | [[Category:Informationstechnik]] |
| [[Category:OldCt]] | | [[Category:OldCt]] |