Änderungen

Zur Navigation springen Zur Suche springen
6.549 Bytes hinzugefügt ,  09:32, 24. Apr. 2023
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:
   −
* JasperReports (wohl der Platzhirsch)
+
 
 +
** 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]
 +
** Nachfolger von JFreeReport<ref>Siehe http://de.wikipedia.org/wiki/Pentaho</ref>
 +
* BIRT, integriert in [[Eclipse]]
 +
* [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 142: 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 150: 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 163: 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 181: 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 201: 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 223: 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]]

Navigationsmenü