Skip to content
Testaroo
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 Testaroo 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.