Wat is het JASPER-bestandsformaat?
Een .jasper-bestand is een gecompileerd JasperReports-rapportsjabloon - het binaire artefact dat wordt geproduceerd wanneer de JasperReports-engine een .jrxml-rapportontwerpbestand compileert. De relatie weerspiegelt Java-compilatie: .jrxml is de broncode, .jasper is de gecompileerde uitvoer, analoog aan een .class-bestand gecompileerd uit een .java-bronbestand.
Technisch gezien is een .jasper-bestand een standaard Java geserialiseerde objectstroom met de magic bytes AC ED 00 05, die een geserialiseerd net.sf.jasperreports.engine.JasperReport-object bevat. Deze objectgrafiek bevat gecompileerde Groovy- of Java-expressie-bytecode, rapportbandstructuren, stijldefinities, parameterdeclaraties en veldmappings. Omdat het formaat vertrouwt op de ingebouwde objectserialisatie van Java, is de serialisatie-UID gekoppeld aan de versie van de JasperReports-bibliotheek - een .jasper-bestand gecompileerd met JR 6.x kan mogelijk niet worden geladen onder JR 7.x en moet opnieuw worden gecompileerd vanuit de originele .jrxml-bron.
Een .jasper-bestand kan niet zelfstandig uitvoer produceren. Het vereist de JasperReports-engine om het met gegevens te vullen en vervolgens te exporteren naar een leveringsformaat zoals PDF, XLSX of HTML. Rapporten worden ontworpen in Jaspersoft Studio (dat in 2014 het stopgezette iReport verving) en uitgevoerd binnen JasperReports Server of een Java-applicatie waarin de JasperReports-bibliotheek is ingebed.
JasperReports werd gecreëerd in 2001. Jaspersoft werd in 2014 overgenomen door TIBCO, en TIBCO werd vervolgens in 2022 overgenomen door Cloud Software Group.
Beveiliging & veiligheid
RISICO: MEDIUM.jasper-bestanden bevatten ingebedde gecompileerde Java-bytecode (expressieklassen). Een kwaadaardig ontworpen .jasper-bestand zou kwetsbaarheden in Java-deserialisatie kunnen misbruiken (het Java-serialisatieformaat is historisch gevoelig voor aanvallen; zie CVE-2015-4852 en gerelateerde „gadget chains”). Laad alleen .jasper-bestanden van vertrouwde bronnen binnen gecontroleerde omgevingen. JasperReports 6.3+ heeft sommige risico's beperkt; houd de bibliotheek up-to-date.
Formaatdetails
in een notendopProgramma's die JASPER-bestanden openen
Technische details
diepe specificaties| Formaat-type | Binaire Java geserialiseerde objectstroom (gecompileerd rapportsjabloon) |
| Magic bytes | AC ED 00 05 (Java Object Serialization stream header) |
| Byte-volgorde | Big-endian (Java serialisatiespecificatie) |
| Codering | Binair (Java ObjectOutputStream-formaat) |
| Geserialiseerde root-klasse | `net.sf.jasperreports.engine.JasperReport` |
| Typische bestandsgrootte | 10 KB - 5 MB (afhankelijk van ingebedde subrapport-bronnen) |
| Bronformaat | Gecompileerd uit `.jrxml` (XML-rapportontwerp) |
| Versiecompatibiliteit | Serialisatie-UID gekoppeld aan JasperReports-bibliotheekversie; bij grote versieverschillen is hercompilatie uit `.jrxml` vereist |
| Ingebedde inhoud | Gecompileerde Groovy/Java-expressie-bytecode, bandstructuren, stijldefinities, parameter- en velddescriptoren |
| Runtime-vereiste | JasperReports-engine - vullen met JasperFillManager, exporteren met JasperExportManager |
| Exportdoelen | PDF, XLSX, HTML, DOCX, CSV, ODS, en meer via JasperExportManager |
| Platform | Windows, Linux, macOS (elk JVM-platform) |
| Uitgebracht | 2001 (JasperReports 0.1) |
| Laatste versie | JasperReports 7.x (2024) |
| Specificatie | jasperreports.sourceforge.net |
JASPER conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over JASPER-bestanden.