Was ist das JASPER-Dateiformat?
Eine .jasper-Datei ist eine kompilierte JasperReports-Berichtsvorlage - das binäre Artefakt, das entsteht, wenn die JasperReports-Engine eine .jrxml-Berichtsdesigndatei kompiliert. Die Beziehung spiegelt die Java-Kompilierung wider: .jrxml ist der Quellcode, .jasper ist die kompilierte Ausgabe, analog zu einer .class-Datei, die aus einer .java-Quelle kompiliert wurde.
Technisch gesehen ist eine .jasper-Datei ein standardmäßiger Java-serialisierter Objektstrom mit den Magic Bytes AC ED 00 05, der ein serialisiertes net.sf.jasperreports.engine.JasperReport-Objekt enthält. Dieser Objektgraph umfasst kompilierten Groovy- oder Java-Ausdrucks-Bytecode, Berichtsbandstrukturen, Stildefinitionen, Parameterdeklarationen und Feldzuordnungen. Da das Format auf der integrierten Java-Objektserialisierung basiert, ist die Serialisierungs-UID an die Version der JasperReports-Bibliothek gebunden - eine mit JR 6.x kompilierte .jasper-Datei kann unter JR 7.x möglicherweise nicht geladen werden und muss aus der ursprünglichen .jrxml-Quelle neu kompiliert werden.
Eine .jasper-Datei kann von sich aus keine Ausgabe erzeugen. Sie benötigt die JasperReports-Engine, um sie mit Daten zu füllen und dann in ein Ausgabeformat wie PDF, XLSX oder HTML zu exportieren. Berichte werden in Jaspersoft Studio entworfen (das 2014 das eingestellte iReport ersetzte) und innerhalb des JasperReports Server oder einer beliebigen Java-Anwendung ausgeführt, die die JasperReports-Bibliothek einbindet.
JasperReports wurde 2001 erstellt. Jaspersoft wurde 2014 von TIBCO übernommen, und TIBCO wurde anschließend 2022 von der Cloud Software Group übernommen.
Sicherheit
RISIKO: MEDIUM.jasper-Dateien enthalten eingebetteten kompilierten Java-Bytecode (Ausdrucksklassen). Eine bösartig manipulierte .jasper-Datei könnte Schwachstellen in der Java-Deserialisierung ausnutzen (das Java-Serialisierungsformat ist historisch anfällig für Angriffe; siehe CVE-2015-4852 und zugehörige Gadget-Chains). Laden Sie .jasper-Dateien nur aus vertrauenswürdigen Quellen in kontrollierten Umgebungen. JasperReports 6.3+ hat einige Risiken gemindert; halten Sie die Bibliothek auf dem neuesten Stand.
Formatdetails
kurz gefasstProgramme zum Öffnen von JASPER-Dateien
JasperFillManager.fillReport() im Java-Code, um den Bericht mit Daten zu füllen, und exportieren Sie ihn dann über JasperExportManager nach PDF/XLSX/HTML. JasperFillManager programmatisch auf. Technische Details
technische Spezifikation| Format-Typ | Binärer Java-serialisierter Objektstrom (kompilierte Berichtsvorlage) |
| Magic Bytes | AC ED 00 05 (Java Object Serialization Stream Header) |
| Byte-Reihenfolge | Big-endian (Java-Serialisierungsspezifikation) |
| Kodierung | Binär (Java ObjectOutputStream-Format) |
| Serialisierte Stammklasse | `net.sf.jasperreports.engine.JasperReport` |
| Typische Dateigröße | 10 KB - 5 MB (abhängig von eingebetteten Unterbericht-Ressourcen) |
| Quellformat | Kompiliert aus `.jrxml` (XML-Berichtsdesign) |
| Versionskompatibilität | Serialisierungs-UID an JasperReports-Bibliotheksversion gebunden; Hauptversionskonflikte erfordern Neukompilierung aus `.jrxml` |
| Eingebetteter Inhalt | Kompilierter Groovy/Java-Ausdrucks-Bytecode, Bandstrukturen, Stildefinitionen, Parameter- und Felddeskriptoren |
| Laufzeitanforderung | JasperReports-Engine - Füllen mit JasperFillManager, Exportieren mit JasperExportManager |
| Exportziele | PDF, XLSX, HTML, DOCX, CSV, ODS und weitere über JasperExportManager |
| Plattform | Windows, Linux, macOS (jede JVM-Plattform) |
| Veröffentlicht | 2001 (JasperReports 0.1) |
| Neueste Version | JasperReports 7.x (2024) |
| Spezifikation | jasperreports.sourceforge.net |
JASPER-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu JASPER-Dateien.
Häufig gestellte Fragen
Wie führe ich eine .jasper-Datei aus, um ein PDF zu erhalten?
JasperFillManager.fillReport(jasperFile, params, dataSource) und dann JasperExportManager.exportReportToPdfFile(jasperPrint, outputPath) auf. Jaspersoft Studio verfügt ebenfalls über eine integrierte Vorschau/Export-Funktion.Kann ich eine .jasper-Datei ohne Java öffnen?
Warum verursacht meine .jasper-Datei nach einem Upgrade von JasperReports einen Serialisierungsfehler?
serialVersionUID der Klasse JasperReport kann sich zwischen den Versionen geändert haben. Kompilieren Sie die Datei mit der neuen JasperReports-Version aus der .jrxml-Quelle neu.Was ist der Unterschied zwischen .jrxml und .jasper?
.jrxml ist die vom Menschen bearbeitbare XML-Berichtsdesign-Quelle; .jasper ist die kompilierte binäre Laufzeitform. Die Beziehung ist wie .java → .class in Java.