Como chamar um Ireport com botão?

Connection con = ConexaoBD.getConnection();
String src = “C:/ProjectoFinal/Ireport/cid12.jasper”;
JasperPrint jaspertPrint = null;
try {
jaspertPrint = JasperFillManager.fillReport(src, null, con);
} catch (JRException ex) {
System.out.println(“Erro:” + ex);
}
JasperViewer view = new JasperViewer(jaspertPrint, false);
view.setVisible(true);

Estou usando esse contigo e está dando um erro na linha nº 5

Boa tarde!

Qual o erro?

O erro surge na linha nº 5
Connection con = ConexaoBD.getConnection();
String src = “C:/ProjectoFinal/Ireport/cid12.jasper”;
JasperPrint jaspertPrint = null;
try {
jaspertPrint = JasperFillManager.fillReport(src, null, con);
} catch (JRException ex) {
System.out.println(“Erro:” + ex);
}
JasperViewer view = new JasperViewer(jaspertPrint, false);
view.setVisible(true);

Ajudam-me

bom dia amigo, abaixo tem um exemplo do código que eu uso, veja se pode ajuda-lo
eu criei uma pasta na raiz do projeto com o nome Relatorios e estou salvando eles lá

public static void imprimirOrdemServidoPdf(long idOrdemServicoCapa) throws Exception {
        try {
            Conexao conectar = new Conexao();
            long parametro = idOrdemServicoCapa;
            HashMap param = new HashMap();
            param.put("p_ordem_servico", parametro); // o que esta entre "" é o nome do parametro do jasperreport

            JasperPrint relatorio = null;
            System.out.println("Entra para gerar os relatorios");
            String dir = System.getProperty("user.dir");
           
            relatorio = JasperFillManager.fillReport(dir + "/Relatorios/relatorios/OrdemServicoNew.jasper" , param, conectar.con);

            JasperViewer.viewReport(relatorio, false);

        } catch (Exception ex) {
            throw new Exception(ex.getMessage());
        }
    }