Problemas com IReport

Galera, vcs sabem me dizer o que eu preciso pra conseguir abrir meu report em pdf, dêem uma olhada no meu código…sou novato no assunto…favor mandarem respostas…na verdade preciso abrir ele num projeto em MVC com jsf…mas primeiro quero testar pra ver se consigo abrir com uma main…

package Model;

import java.util.HashMap;
import java.sql.*;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.view.JasperViewer;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*

  • @author Rafael
    */
    public class Relatorio1 {

    Relatorio1 r;

    public Relatorio1(){

    }

    public void gerar() throws JRException , SQLException, ClassNotFoundException{

     Connection con = (Connection) new FabricaConexao().conectar();
    
     String query = "select * from produto";
     Statement stm = con.createStatement();
     ResultSet rs = stm.executeQuery(query);
    
     JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
    
     HashMap p = new HashMap();
    
    JasperFillManager.fillReportToFile("../relatorio/report.jrxml", p, jrRS);
    
     JasperExportManager.exportReportToPdfFile("../relatorio/report.jrprint");
    
     JasperViewer.viewReport("../relatorio/report.jrprint", false);
    

    }//
    //

public class FabricaConexao {

public Connection conectar(){
    System.out.println("Conectando ao banco");
try {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(FabricaConexao.class.getName()).log(Level.SEVERE, null, ex);
        }
        return DriverManager.getConnection("jdbc:mysql://localhost:3306/farmatads","root","52872");
} catch(SQLException e) {
throw new RuntimeException(e);
}
}//connection conectar

}//fabrica conexao

public static void main (String args[]){

try {
Relatorio1 r = new Relatorio1();
r.gerar();
} catch (Exception e) {
e.printStackTrace();
}
}
}