А вот программка собственно, я там main фукцию вырезал, там не интересно, она просто парсит параметры и вызывает функцию execute
import java.sql.*;
import oracle.jdbc.driver.*;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.export.*;
import java.util.*;
import org.apache.commons.cli.BasicParser;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.ParseException;
import java.io.*;
public class JRLauncher {
public void execute()
{
HashMap hm = new HashMap();
try {
Connection jdbcConnection = this.connectDB();
System.out.println( "Fill the report..." );
JasperPrint print = JasperFillManager.fillReport( this.jasperreport, hm, jdbcConnection );
System.out.println( "Create a PDF exporter..." );
JRExporter exporter = new JRXlsExporter();
// Configure the exporter (set output file name and print object)
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, this.outputfile);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print );
exporter.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE );
exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE );
System.out.println( "Export the XLS file..." );
exporter.exportReport();
} catch (JRException e) {
e.printStackTrace();
System.exit(1);
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
}