2.1 JavaCompilePackaging PDF
2.1 JavaCompilePackaging PDF
Beginner to Guru
MyJavaClass.java MyJavaClass.class
MyGroovyClass.groovy MyGroovyClass.class
MyScalaClass.scala MyScalaClass.class
MyKotlinClass.kt MyKotlinClass.class
Packaging Java Applications
Many Class Files Zip Compression *.jar, *.war, *.ear Unzip JVM
MyJavaClass.class
MyGroovyClass.class
MyScalaClass.class
MyKotlinClass.class
Java Packaging
• *.jar - Java ARchive - Zip file containing one or more Java class files.
• *.war - Web Application aRchive - Zip file containing web application. Includes one or more jar
files, Java class files, and web resources.
• *.ear - Enterprise aRchive - Zip file containing one more more WAR files.
• Fat JAR (aka Uber JAR) - Executable Jar containing all dependencies. (Used by Spring Boot)
• Docker Container - Docker Image containing runtime environment, JVM, and Java package
Java Deployment
• Simple JAR files are typically collection of class files used to compose applications
• Typically not a complete application
• WAR, EAR files are typically complete applications which are deployed to application servers