Boa tarde pessoal, sou iniciante em e estou tentando imprimir o relatório usando um botão e coloquei esse código mas na hora de gerar o relatório da um erro que não encontra o caminho, o que tem de errado? tem outra maneira de gerar o relatório?
try {
Connection con = new DAOconexoes().getConn();
System.out.println(diagnostico.getCodigodiag());
//Passando parâmetros para o HashMap
Map parameterMap = new HashMap<String, Object>();
parameterMap.put("DIAGNOSTICO", diagnostico.getCodigodiag());
JasperPrint jp = JasperFillManager.fillReport("C:/Documents and Settings/Lyster/Desktop/Cloud/src/report1.jasper", parameterMap, con);
JasperViewer jrv = new JasperViewer(jp);
jrv.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
O erro gerado é esse:
run:
1
net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: C:\Documents and Settings\Lyster\Desktop\Cloud\src\report1.jasper
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:109)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:98)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:272)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:745)
at Visao.FormDiagnostico.botao_imprimirActionPerformed(FormDiagnostico.java:1240)
at Visao.FormDiagnostico.access$1400(FormDiagnostico.java:36)
at Visao.FormDiagnostico$15.actionPerformed(FormDiagnostico.java:575)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6504)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:121)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
at java.awt.Dialog.show(Dialog.java:1072)
at java.awt.Component.show(Component.java:1650)
at java.awt.Component.setVisible(Component.java:1602)
at java.awt.Window.setVisible(Window.java:1013)
at java.awt.Dialog.setVisible(Dialog.java:1003)
at Visao.FormDiagnostico$16.run(FormDiagnostico.java:1296)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.io.FileNotFoundException: C:\Documents and Settings\Lyster\Desktop\Cloud\src\report1.jasper
Se o java está dizendo que não encontrou, significa…
Provavelmente o arquivo não esteja neste local.
Com o tempo você perceberá que caminhos completos nem sempre são bons para algo que se pretende fazer.
Enfim, eu sugeriria que você colocasse o arquivo .jasper dentro do projeto e, então, alterasse a configuração do caminho.
Como você está utilizando desktop, não terá muitos problemas para resolver este problema.
Ah, sim, ia esquecendo, colocando o arquivo dentro da raiz do projeto, em uma pasta chamada relatorio, o caminho será
net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: \relatorio\report1.jasper
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:109)