Skip to content
Novus Examples
jar1.3 KB

JAR With a Nested Library JAR

The nested-JAR layout an executable fat jar uses: a manifest with a Class-Path entry and a second JAR stored uncompressed under BOOT-INF/lib so it can be read in place without being extracted first. It contains resources only - properties, JSON and text, no compiled bytecode - and the manifest uses the CRLF line endings the JAR specification requires.

Archive contents — 4 entriesjar
  • MANIFEST.MF
  • application.json
  • novus-resources.jar
  • README.txt

Specifications

Seed
20260807
Members
4
Nested Archives
1
Nesting Depth
2
Layout
BOOT-INF/lib nested-jar layout
Nested Jar Stored
true
Manifest Line Endings
CRLF, as the JAR specification requires
Contains
properties, JSON and text only - no .class bytecode

Testing contract

Expected to pass
Scenario
Read the outer manifest, then open BOOT-INF/lib/novus-resources.jar without extracting it.
Expected result
The manifest's Class-Path names the nested jar, the nested jar is stored with method 0 so it can be memory-mapped in place, and it yields its own manifest plus messages.properties.

What is a .jar file?

JAR (Java Archive) is a ZIP-based package that bundles Java class files, resources, and a manifest into a single distributable unit. The manifest can declare an entry point and metadata, making the JAR executable or usable as a library. It is the standard packaging format for the Java ecosystem.

How to use this file

Use an example JAR to test ZIP-based extraction, manifest parsing, classpath and dependency tooling, and Java build or deployment pipelines.

How to use this file for testing

“JAR With a Nested Library JAR” is a deterministic Novus Examples fixture for Conversion testing, Metadata testing. The same content exported across many formats and linked as a group, so you can convert one and diff against the expected twin.

Documented properties for this file: seed 20260807. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Archive fixtures are documented down to their member list (shown on this page) and are deliberately safe — no zip bombs, executables, or hidden payloads. Test extractors against nested, unicode, empty, and encrypted variants.

Code examples

unzip -l jar-with-nested-jar.jar     # list members
unzip jar-with-nested-jar.jar -d out/  # extract

Generated by generation/archives_p7.py. Free for any use, no attribution required — license.