Trace: » java03.html

[hemmerling] Java & Java Platform Languages 3/4 - The Java Language, Java Frameworks & Java APIs

The Java Language and the JDK


Java 8

Java 9

Java 11

MAP, Hash Map, Dictionary





  • Selection of the active Java runtime / JDK for Windows, by the registry entry: key = “HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Development Kit/Current Version”, value=“1.3”.

Communications with Java

PDF Generation


Execution of "System.console()" in IDEs

Concurrency, Thread Safety

J2EE / Java EE / Eclipse "EE for J"

Java EE Platform Specification - The Framework

GitHub "Java EE"


Application Servers

Apache Tomcat - A Web Container only

The Tool
  • Port.
  • If Apache Tomcat does not start by the error message “The specified module could not be found”, “Das angegebene Modul wurde nicht gefunden”, found in “C:\Program Files\Apache Software Foundation\Tomcat 6.0\logs/jakarta_service_20101109.log” ( 20101109 is a coding of the date 2010-11-09 ), please fix the problem with the following instructions:
  • If you start Tomcat by the Netbeans IDE, the base directory “Catalina Base” is at “Servers / Apache Tomcat / Connection / Catalina Base” as read only operating system directory path.
    • On Windows, you may copy + paste this path, e.g. “C:\Users\Administrator\AppData\Roaming\NetBeans\8.2\apache-tomcat-”.
    • Then you may create a directory shortcut on the desktop or create an MSIE bookmark from the directory level above ( e.g. from ”:\Users\Administrator\AppData\Roaming\NetBeans\8.2” ), so that you may open the location by a single click.
    • “C:\Users\Administrator\AppData\Roaming\NetBeans\8.2\apache-tomcat-\work\Catalina\localhost” is then the server cache directory.
  • Tomcat requires the ( empty ) directory ”<project root>/web/WEB-INF”. By default, Git / GitHub doesn´t store empty directories. So please put a dummy file into the WEB-INF directory to force the storage on the GitHub cloud service.
  • After download a JavaEE6 project from GitHub into Netbeans IDE, I got the error message “Problem: The project uses the file/folder called “src-java”, but this file/folder was not found. Solution: Click Resolve and locate the missing file/folder”
  • The server cache is at ”<TOMcAT_HOME>\work\Catalina\<HOSTNAME>”, e.g. “C:\Program Files\Tomcat8\work\Catalina\localhost”.
  • Apache Tomcat "Realm Configuration HOW-TO" - “A Realm is a 'database' of usernames and passwords that identify valid users of a web application (or set of web applications), plus an enumeration of the list of roles associated with each valid use”.

Glassfish - The Java EE 7 Sample Implementation

The Tool



  • jWebSocket - “The Open Source Java WebSocket Server”.

Eclipse MicroProfile

WildFly - Application Server for building Microservices


Some other Application Servers for Java


Dependency Injection with Java

Traditional ( limited ) Dependency Injection with Java EE 6

Contexts and Dependency Injection ( CDI ) of Java EE 6


Java Data Persistence

Java Data Objects ( JDO )



  • Jdbi - “Jdbi provides convenient, idiomatic access to relational data in Java”. “Jdbi is built on top of JDBC”.


  • jOOQ - “jOOQ generates Java code from your database and lets you build type safe SQL queries through its fluent API”.



R2DBC - Reactive Programming API to relational Data Stores



General Business Application Frameworks

The Oracle Application Development Framework ( ADF )


Graphical User Interface Frameworks

Abstract Window Toolkit ( AWT )

Java Swing

Standard Widget Toolkit


The Framework
  • Oracle "Java SE 8 Archive Downloads" - “Java SE Development Kit 8”, “Linux ARM v6/v7 Hard Float ABI”, “jdk-8-linux-arm-vfp-hflt.tar.gz” is the latest edition shipped with JavaFX.
  • JavaFX offers “Data Binding” ( EN.Wikipedia "Data binding" as .NET with Windows Presentation Foundation ( WPM ). In opposite, “Java Swing” and “Java AWT” don´t offer such.
    • Application of “Data Binding”: The GUI element offers properties, which can be linked by “Data Binding” with other properties of other GUI elements. You even may do mathematical or logical calculations to define the status of a GUI property, based on other GUI properties of other GUI elements.
    • Example for “Data Binding”: A GUI button is active just if some text is entered in a textfield.
Model View ViewModel ( MVVM ) for JavaFX
ControlsFx for JavaFX
Java IDEs, with support to develop JavaFX applications ( as of 2015-10 )
jpro - JavaFX in the browser
  • jpro - JavaFX in the browser - without plugins - “JPROjpro is a new technology which brings Java back into the browser - without Java Plugin. To achieve that, jpro runs JavaFX on the server and maps its scenegraph directly into the browser. The client side rendering is highly optimized with browser side approximations to get a smooth user experience free of lags”.

GUIs according to the Naked Objects Pattern

Naked Objects


Experts for Java Swing & JavaFX Design, also in Metro / Flat Design Style
Experts for JavaFX


Reactive Libraries, Frameworks & APIs

Project Reactor

  • Project Reactor - ” Create efficient Reactive systems. Reactor is a fourth-generation Reactive library for building non-blocking applications on the JVM based on the Reactive Streams Specification”.

Reactive Streams


Spring WebFlux

Web Frameworks

JSP, a low-level Framework, optional Base for high-level Frameworks

JSP & Servlets
General Resources



Spring Web MVC



  • Apache Tiles - “Tiles grew in popularity as a component of the popular Struts framework. It was extracted from Struts and is now integrated with various frameworks, such as Spring and Struts 2”.



    • Dependencies - Add Spring Boot Starters and dependencies to your application
      • Search for dependencies → “Vaadin”.
      • Selected Dependencies.
  • EN.Wikipedia "Vaadin", DE.Wikipedia "Vaadin" - “thinking of U and I. Vaadin is a Java framework for building modern web applications that look great, perform well and make you and your users happy”.
  • In 2018-09, experts told me, that there will be no book ( by the Vadin crew ) about Vaadin 10 :-(.
  • Experts told me, that LongTimeSupport ( LTS ) is provided for Vaadin 8 and 10. The next expected LTS version will be Vaadin 15.


Logging Frameworks

Log4j 2

Loggin Framework (JDK)

Simple Logging Facade for Java (SLF4J)

Some other Frameworks



Serial Communications ( RS-232, COM1: )

JavaComm 2.0 for Windows

JavaComm 3.0 for Linux, but not for Windows

  • Oracle "Java CommunicationsAPI" - “Java Communications 3.0 API... available for Solaris SPARC, Solaris x86, and Linux x86”. I.e. the API is not available for Windows.


jperipheral for Windows

v5t11 - Java EE Application using RXTX

  • Speech “Java on Tracks – die Kind-im-Manne-Session” ( “Java on Tracks – the child-in-man session” ).
  • With v5t11, the java communication library RXTX is directly included in the core Java application, i.e. a DLL is loaded by the Java application.
    • A crash or failure in serial communication library, in the native driver for the operating system or in the DLL respectively, might cause immediate freezing or crash of the whole single-task application or even the whole operating system.
    • By the special design ( JBOSS; JBOSS adapter for a JBOSS module which inherits RXTX ), RXTX's DLL is not loaded each time the communications API is call. With standard design, RXTX's DLL would be loaded each time the communications API is called.
  • In another project, a commercial project, the serial communication was therefore outsourced to another component, so that there was just loose coupling between the serial communciations and the application.


Regular Expressions

Other Programming Languages & Interpreters based on JVM and/or Java

  • GitHub " jwoehr / ublu" - “Ublu Midrange and Mainframe Life Cycle Extension Language”. “Ublu is an interpretive language for remote systems programming of midrange or mainframe hosts from a Java platform such as Linux, Mac, OpenBSD or Windows. It also can run natively on IBM i, IBM z/OS USS or any other reasonable Java platform including Android UserLAnd”.


Appropriate OpenDirectory Directory Pages

en/java03.html.txt · Last modified: 2023/11/24 16:03 (external edit) · []
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki