Jar não gera relatorio no cliente

6 respostas
R

Pessoal, no eclipse na minha maquina gera perfeitamente o relatório, mas quando eu uso jar na maquina do cliente não gera nada, gerando uma mensagem Java.io.fileNotFoundException.

public void imprimirCarimboPaisagemTubo()
	{
		Integer codigo = null;
		codigo = Integer.parseInt(this.visaoRastreabilidade.getTxtCodigoGeradoBD().getText());
		
		try {
			 //cria a conexão com o banco de dados
			conn = ConexaoBancoDeDados.getConnection();

			HashMap<String, Integer> parameterMap = new HashMap<String, Integer>( );

			//o Nome do parâmetro e o valor é passado ao HashMap
			parameterMap.put("PAR_CODIGO", codigo);

		    String path = "src/sysRastreabilidade/rastreabilidade/carimbo/tubo";
		    File file = new File(path);
		    file = file.getAbsoluteFile( );
			
		    String repStr2 = file.getPath( );
			
			 //pega o caminho físico até o arquivo .jasper
			String arquivo = System.getProperty("user.dir") + "/src/sysRastreabilidade/rastreabilidade/carimbo/tubo/CarimboPaisagemTubo.jasper";
			
			 //chama fillReport
			JasperPrint jp = JasperFillManager.fillReport(arquivo, parameterMap, conn);
			
			//exporta para o formato ODT do OpenOffice.org Writer
			JROdtExporter odtExporter = new JROdtExporter();
			odtExporter.setParameter(JRExporterParameter.JASPER_PRINT, jp);
			odtExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, path + "/relatorio.odt");
			odtExporter.setParameter(JRExporterParameter.JASPER_PRINT, jp);
			odtExporter.setParameter(JRExporterParameter.OFFSET_X, new Integer(0)); 
			odtExporter.setParameter(JRExporterParameter.OFFSET_Y, new Integer(0)); 
			odtExporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8"); 
		
			odtExporter.exportReport();

			 //exibe o relatório com viewReport
			JasperViewer.viewReport(jp, false);
	       
		}

		catch (SQLException ex) 
			{
				JOptionPane.showMessageDialog(null,ex.getMessage());   
		       //ex.printStackTrace();
			}
			catch (JRException e) 
			{
				JOptionPane.showMessageDialog(null,e.getMessage());
				//e.printStackTrace();
			} finally {
		       try {
		           if (!conn.isClosed()) {
		               conn.close();
		           }
	//-	           System.out.println("Finalizado!");
		       } 
		       catch (SQLException ex) {}
			}
	}

Me ajudem por favor!!!

6 Respostas

yorgan

Pelo visto você está apontando para um caminho que não existe no cliente.
Já deu uma revisada nessas pastas?

[]'s
Daniel

R

Já revisei o caminho, quando eu rodo o .jar no cliente não gera nada e eu não sei como o jar cria as suas pastas, se cria exatamente como no eclipse.

yorgan

Então, você está acessando o .jasper porque você tem o src do projeto no seu computador.
Quando você compila o JAR, não pode acessar o .jasper usando o path absoluto justamente porque ele está compactado no jar.
Tente mudar seus paths para “/” e copie o seu .jasper direto p/ raiz.

[]'s
Daniel

yorgan

Isso vale para o arquivo .odt também.
Você não pode passar para uma pasta do JAR.
Coloque o .jasper na raiz “/” e o destino do .odt para “/seuArquivo.odt”.

[]'s
Daniel

R

Na raiz tipo c:relatorio/arquivo.jasper

isso?

yorgan

Isso, se for windows pode ser “c:/relatorio.jasper”…mas mesmo no windows, se você usar só “/relatorio.jasper” o sistema operacional já sabe que é “c:/”, mas no linux ou outro OS o “c:/” não vai funcionar.

[]'s
Daniel

Criado 21 de fevereiro de 2011
Ultima resposta 21 de fev. de 2011
Respostas 6
Participantes 2