This article was accepted into the corpus but its outbound wikilinks were never NER-processed — typical at the deepest BFS hop or when the run's entity cap was reached. No expansion funnel to show.
| JAR | |
|---|---|
| Name | JAR |
| Type | Archive format |
| Introduced | 1995 |
| Developer | Sun Microsystems |
| Extended from | ZIP |
| Platform | Java Platform |
JAR
JAR is a standardized archive format and deployment mechanism associated with the Java Platform, originally created by Sun Microsystems in the mid-1990s to package class files, resources, and metadata for distribution and execution. It enables bundling code and assets for applications and libraries used across environments such as Apache Tomcat, GlassFish, Eclipse IDE, and Android toolchains. Implementations and tooling for JAR interact with ecosystems around OpenJDK, Oracle Corporation, Maven, Gradle, and Ant to support building, signing, and deploying Java-based artifacts.
The term originated within Sun Microsystems engineering groups as an acronym describing a Java-focused archive based on the ZIP file format and influenced by packaging practices from systems like UNIX tar and PKZIP. Early documentation and presentations at conferences such as JavaOne formalized the name in specifications and community projects, while companies including IBM and BEA Systems adopted the term in their product documentation. Subsequent standards and tools from organizations such as the Java Community Process and projects under OpenJDK solidified the nomenclature.
As defined in technical specifications and developer guides, a JAR file is an archive that contains compiled Java bytecode, manifest metadata, and resource files usable by runtimes like the Java Virtual Machine and platforms such as Android Runtime. Common uses include packaging Java applications for execution with the java launcher, distributing reusable libraries for build systems like Apache Maven and Gradle, and bundling extensions for servers such as WildFly and Apache Tomcat. JAR files are also employed for plug-in systems in IDEs including Eclipse IDE and IntelliJ IDEA, and for applet deployment during the early web era involving Netscape Navigator and Microsoft Internet Explorer.
JARs follow a ZIP container structure with a defined metadata entry called the manifest (MANIFEST.MF) as specified in Java Platform, Standard Edition documentation. Variants include executable JARs specifying a Main-Class for use with the java command, library JARs consumed by dependency managers like Maven Central, and extension or module JARs within systems such as the Java Platform Module System introduced in Java SE 9. Specialized formats and related packaging include shaded JARs produced by tools like Maven Shade Plugin and Gradle Shadow Plugin, OSGi bundles used in frameworks like Apache Karaf and Eclipse Equinox, and Android Archive (AAR) artifacts used by the Android SDK. Archive signing formats adhere to conventions established in Java Cryptography Architecture documentation.
Developers create and manipulate JARs using command-line utilities such as the jar (Java Archive) tool bundled with JDK distributions from Oracle Corporation and OpenJDK, or via build automation systems like Apache Ant, Gradle, and Apache Maven. Continuous integration platforms such as Jenkins and GitLab CI/CD automate JAR assembly and artifact publication to repositories including Maven Central, JFrog Artifactory, and Sonatype Nexus. IDEs like Eclipse IDE, NetBeans, and IntelliJ IDEA provide wizards and integrations for packaging JARs, while containerization and deployment ecosystems like Docker and Kubernetes often consume JARs to build images for services running on Spring Framework or Jakarta EE application stacks.
JAR signing uses cryptographic mechanisms rooted in standards from Public Key Infrastructure practices and is implemented by utilities within the Java Development Kit such as jarsigner. Signed JARs played roles in trust models for web applets and extension frameworks and are relevant to code provenance in environments managed by organizations like Apache Software Foundation and Eclipse Foundation. Security analysis of JAR contents intersects with vulnerability databases and scanners maintained by projects such as OSS Index and services like Snyk, and with policies enforced by enterprise platforms including IBM WebSphere and Oracle WebLogic Server. Runtime permission models involving signed code are documented in specifications for the Java Security Manager and have implications for sandboxing in containers and cloud offerings from vendors like Amazon Web Services and Google Cloud Platform.
Compatibility of JARs depends on bytecode versions produced by specific Java SE releases and on manifest or module metadata conforming to standards defined by the Java Community Process and the Java Specification Request system. Interoperability considerations include classpath resolution in legacy applications, module-path behavior introduced in Java SE 9's Project Jigsaw, and OSGi bundle lifecycle semantics specified by the OSGi Alliance. Repository formats and artifact coordinates follow conventions used by Maven Central and Ivy metadata, while signature and certificate handling adhere to X.509 and PKCS standards referenced by RFC documents adopted by industry.
Notable implementations and toolchains working with JARs include the OpenJDK and Oracle JDK distributions, build systems such as Apache Maven, Gradle, and Apache Ant, and repository managers like Sonatype Nexus and JFrog Artifactory. Packaging and shading utilities include the Maven Shade Plugin, Gradle Shadow Plugin, and OSGi tooling found in Apache Felix and Eclipse Equinox. Security and signing tools include jarsigner in the JDK and certificate management via Keytool, while analysis and dependency management intersect with services like Dependabot and Snyk. Runtime environments and servers that consume JARs encompass Apache Tomcat, WildFly, GlassFish, Spring Boot, and mobile platforms such as Android's build system. Category:Java Archive format