Internet Explorer is no longer supported. Many things will still work, but your experience will be degraded and some things won't function. Please use a modern browser such as Edge, Chrome, or Firefox.

Java

view on GitHub

Java is one of the top five programming languages in the software ecosystem, running on billions of devices from global cloud systems to single-board computers like Raspberry Pi.

Jakarta EE is the de facto set of multi-tier specifications and extensions to Java SE that enables enterprise application services such as:

  • Servlets
  • JavaServer Faces (JSF) (component-based UI for web apps)
  • Web services
  • Framework libraries and APIs:
    • Dependency injection
    • Persistence
    • Transactions

Formerly known as Java Enterprise Edition (Java EE) and Java 2 Platform, Enterprise Edition (J2EE), it is sponsored by the [Eclipse Foundation] and contributed to by Oracle.

The most common Java application servers are:

When deploying Java locally or to small web servers, the most common web servers are:

Building Java Applications

Java programs are compiled into bytecode as .class files and packaged into one of many types of JAR files. At run time, bytecode is interpreted and executed by the Java Virtual Machine (JVM). To develop Java, you'll always develop against the Java Development Kit (JDK).

Common tools used to build and test Java programs are:

  • javac - primary Java compiler included with the JDK
  • Maven - most common XML-based build and deployment tool with all the support of Ant plus dependency management, packaging, publish support
  • Ant - basic build tool with customizable XML build tasks
  • Gradle - similar to Maven but uses a Groovy-based configuration file
  • JUnit - most common unit test framework for Java applications

Automation with BuildMaster

At a high level, the process of building and deploying Java applications with BuildMaster is:

  • Get source code from the source control repository
  • Compile project with Maven
  • Capture artifact for deployment

Deploying Java Applications

Java applications in an enterprise are typically deployed on premise or to hosted application servers such as:

  • IBM WebSphere
  • Oracle WebLogic
  • Red Hat JBoss/WildFly
  • Tomcat

Deployment to application servers involves running a host-specific deploy command on a remote server, typically with a WAR file as an input argument.

Deploying to web servers is a little different. Deploying to Tomcat servers, for example, follows the common format:

  • Stop Tomcat services
  • Deploy WAR file
  • Start Tomcat services