Relatório só roda dentro do NetBeans

Resolvi da seguinte forma:

[code] private void jButtonImprimirRelGeralActionPerformed(java.awt.event.ActionEvent evt) {
try {
visualizarRelatorio();
} catch (ClassNotFoundException ex) {
Logger.getLogger(FormRelGeral.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(FormRelGeral.class.getName()).log(Level.SEVERE, null, ex);
} catch (JRException ex) {
Logger.getLogger(FormRelGeral.class.getName()).log(Level.SEVERE, null, ex);
}
}

public void visualizarRelatorio() throws ClassNotFoundException, SQLException, JRException {
    JasperPrint relatorio = null;
    JasperReport jasperReport = null;

    Class.forName(driver);
    Connection con = (Connection) DriverManager.getConnection(url, login, pwd);
    Statement stm = (Statement) con.createStatement();

    Map parametros = new HashMap();
   
        InputStream jasperFile = (InputStream) Thread.currentThread().getClass().getResourceAsStream("/relatorios/Geral.jasper");
        jasperReport = (JasperReport) JRLoader.loadObject(jasperFile);

        relatorio = JasperFillManager.fillReport(jasperReport, parametros, con);
        
        JasperViewer viewer = new JasperViewer(relatorio, false);
        viewer.setTitle("Relatório");
        viewer.setVisible(true);
}[/code]

e as bibliotecas ficaram assim, conforme imagem em anexo.