Per ottenere una "decompilazione" da .jasper a .jrxml non ho trovato utility disponibili.
Per fortuna le classi di Jasper mettono a disposizione le API per farlo.
Di seguito il codice di una semplice classe con il main che dato un .jasper ottiene il jrxml.
Nel classpath bisogna avere i seguenti jar:
commons-logging.jar
commons-beanutils-1.7.0.jar
commons-collections-3.1.jar
jasperreports-2.0.1.jar
commons-fileupload.jar
commons-digester.jar
commons-discovery-0.2.jar
jasperreports-extensions1.3.1.jar
commons-lang-2.3.jar
commons-validator.jar
commons-httpclient-3.1.jar
commons-codec-1.3.jar
package test;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.engine.xml.JRXmlWriter;
public class JasperToJrxml {
public static void main(String[] args) throws JRException {
String sourcePath = "out\\questBDM2.jasper";
String destinationPath = "out\\questBDM2.jrxml";
try
{
JasperReport report = (JasperReport)JRLoader.loadObject(sourcePath);
JRXmlWriter.writeReport(report, destinationPath,"UTF-8");
System.out.println("Ok");
}
catch(JRException e)
{
e.printStackTrace();
}
}
}
Per fortuna le classi di Jasper mettono a disposizione le API per farlo.
Di seguito il codice di una semplice classe con il main che dato un .jasper ottiene il jrxml.
Nel classpath bisogna avere i seguenti jar:
package test;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.engine.xml.JRXmlWriter;
public class JasperToJrxml {
public static void main(String[] args) throws JRException {
String sourcePath = "out\\questBDM2.jasper";
String destinationPath = "out\\questBDM2.jrxml";
try
{
JasperReport report = (JasperReport)JRLoader.loadObject(sourcePath);
JRXmlWriter.writeReport(report, destinationPath,"UTF-8");
System.out.println("Ok");
}
catch(JRException e)
{
e.printStackTrace();
}
}
}