1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Como deixar o jasper dentro do projeto?

Eu estou tentando gerar um relatório e estava funcionando perfeitamente, mas o arquivo .jasper ficava em uma pasta chamada Rel, junto com as pastas: src, dist, etc.

No netbeans ele funcionava, porém quando eu construia e executava o jar ele dava erro. Agora estou tentando colocar ele dentro do projeto (dentro da pasta src) mas ele da erro.

Assim que eu estou fazendo:

public Relatorio(Holerite h) {
        List<Holerite> lista = new ArrayList<Holerite>();
        lista.add(h);
        JasperReport report;
        try {
            Map parameters = new HashMap();
            parameters.put("SUBREPORT_DIR", getClass().getResourceAsStream(".."+File.separator+"Relatorios"+File.separator+"RelAdicionais.jasper"));
            JasperPrint print = JasperFillManager.fillReport(".."+File.separator+"Relatorios"+File.separator+"Holerite.jasper", parameters, new JRBeanCollectionDataSource(lista));

            JasperViewer viewer = new JasperViewer(print, false);
            viewer.show();
        } catch (JRException ex) {
            Logger.getLogger(Relatorio.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

PS: Criei um Pacote chamado Relatorios que é onde ficam o Holerite.jasper e o RelAdicionais.jasper

PS2: Esta Classe fica no pacote Controller que fica na mesma pasta do pacote Relatorios

Mas dá este erro:

net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: ..\Relatorios\Holerite.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:565) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:915) at br.inf.topsoft.Controller.Relatorio.(Relatorio.java:38) at br.inf.topsoft.View.FrmLanHole.GeraRelatorio(FrmLanHole.java:574) at br.inf.topsoft.View.FrmLanHole.btGravaActionPerformed(FrmLanHole.java:332) at br.inf.topsoft.View.FrmLanHole.access$100(FrmLanHole.java:32) at br.inf.topsoft.View.FrmLanHole$3.actionPerformed(FrmLanHole.java:185) 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.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: ..\Relatorios\Holerite.jasper ... 45 more

O que eu estou fazendo de errado?

Edit: Eu acho que o erro está no caminho do arquivo, ja que todas as minhas tentativas não estão achando. Mas eu não consigo ver o que eu errei, ajuda ai galera que eu não to conseguindo resolver.

Os caminhos são esses:

Da classe que chama:

E:\TOP\Java\TopBusiness\topFolha\TopFolha\src\br\inf\topsoft\Controller\Relatorio.java

Do Relatório principal

E:\TOP\Java\TopBusiness\topFolha\TopFolha\src\br\inf\topsoft\Relatorios\Holerite.jasper

Do subreport:

E:\TOP\Java\TopBusiness\topFolha\TopFolha\src\br\inf\topsoft\Relatorios\RelAdicionais.jasper

  • convere se o arquivo esta no lugar certo e caminho bem certo, pq o arquivo não foi encontrado...

    Cristian Urbainski   27 de mai de 2013
  • Sim, está no lugar certo.

    Yago Ernandes   27 de mai de 2013
  • pelo que parece o caminho que voce passar para que o .jasper seja carregado não esta certo...

    Cristian Urbainski   27 de mai de 2013
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags ireport java relatórios ou faça a sua própria pergunta.