Caminho relativo de sub-relatório [RESOLVIDO]

[RESOLVIDO]

Com esse código:

URL web = getClass().getResource("/relatorio/subFluxo.jasper"); parameters.put("SUBREPORT_DIR", web.toString());
Obrigado!

Galera, eu tenho um relatório no iReport que tem um sub-relatório.
O problema é que ao rodar a aplicação em outro pc ele dá uma excessão, pois não encontra o caminho do sub-relatório.
O que eu posso fazer pra resolver isso?
Já tentei fazer um getResourceAsStream() no iReport, mas não funciona.

Valeu!

fasts,

Manda pra cá o erro, tenta dar mais detalhes.

Pois bem.
A subreport expression é essa:

$P{SUBREPORT_DIR} + "subFluxo.jasper"

O parâmetro $P{SUBREPORT_DIR} é esse:

"C:\\Users\\Informática\\workspace\\PetraEclipse\\src\\relatorio\\"

O problema é que ao mudar o PC, esse caminho deixa de ser válido e aí é gerada a excessão.
A exception que dá é essa:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: name
	at sun.misc.URLClassPath$Loader.findResource(Unknown Source)
	at sun.misc.URLClassPath.findResource(Unknown Source)
	at java.net.URLClassLoader$2.run(Unknown Source)
	at java.net.URLClassLoader$2.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findResource(Unknown Source)
	at java.lang.ClassLoader.getResource(Unknown Source)
	at net.sf.jasperreports.engine.util.JRResourcesUtil.findClassLoaderResource(JRResourcesUtil.java:529)
	at net.sf.jasperreports.repo.DefaultRepositoryService.getInputStream(DefaultRepositoryService.java:130)
	at net.sf.jasperreports.repo.DefaultRepositoryService.loadObject(DefaultRepositoryService.java:194)
	at net.sf.jasperreports.repo.DefaultRepositoryService.getResource(DefaultRepositoryService.java:168)
	at net.sf.jasperreports.repo.RepositoryUtil.getResource(RepositoryUtil.java:145)
	at net.sf.jasperreports.repo.RepositoryUtil.getReport(RepositoryUtil.java:125)
	at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateReport(JRFillSubreport.java:314)
	at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:344)
	at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:272)
	at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:257)
	at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:468)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillBandNoOverflow(JRVerticalFiller.java:440)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillPageHeader(JRVerticalFiller.java:404)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:265)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:129)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:903)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:832)
	at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:605)
	at relatorio.FluxoCaixa.geraRelatorio(FluxoCaixa.java:138)
	at relatorio.Gerador.<init>(Gerador.java:49)
	at controle.ControlePrincipal.actionPerformed(ControlePrincipal.java:44)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.AbstractButton.doClick(Unknown Source)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$000(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Alguém tem idéia de como poderia solucionar esse problema?

Alguém?
Tentei essa solução - sem êxito:

JasperReport subRelatorio = (JasperReport) JRLoader.
        loadObjectFromFile("subFluxo.jasper");
parameters.put("subRelatorio", subRelatorio);

E é lançada essa excessão:

net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: subFluxo.jasper
	at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:94)
	at net.sf.jasperreports.engine.util.JRLoader.loadObjectFromFile(JRLoader.java:83)
	at relatorio.FluxoCaixa.geraRelatorio(FluxoCaixa.java:138)
	at relatorio.Gerador.<init>(Gerador.java:49)
	at controle.ControlePrincipal.actionPerformed(ControlePrincipal.java:44)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.AbstractButton.doClick(Unknown Source)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$000(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.io.FileNotFoundException: subFluxo.jasper
	... 43 more

Ninguém tem um relatório com subrelatório que também é usado em outros pcs?

Tentei outra solução, também em vão:

JasperReport subRelatorio = JasperCompileManager.compileReport(
        this.getClass().getResourceAsStream("subFluxo.jasper"));
parameters.put("SUBREPORT_DIR", subRelatorio);

Alguém?

[RESOLVIDO]

Com esse código:

URL web = getClass().getResource("/relatorio/subFluxo.jasper"); parameters.put("SUBREPORT_DIR", web.toString());
Obrigado!