PDF do jar?

8 respostas
S

meu codigo da ide roda sem problema…

agora do jar nao acha o arquivo pdf, e ele esta no jar no mesmo lugar da ide
tenho algumas imagens que estao na mesma pasta do pdf e chamo elas da msm forma
e funciona. O que será??
obrigado…

8 Respostas

fsjr

Cara usa o classloader para isso que vai funcionar …

Usa assim:

...
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("image/ajuda.pdf");
...

Abraço

S

sim usei o class loader.
mas como abrir com algum leitor de pdf essa inputStream?

o meu pdf ja está gerado só quero abrir ele em algum leitor de pdf do sistema…
pelo jar…

obrigado…

fsjr

sandrini:
sim usei o class loader.
mas como abrir com algum leitor de pdf essa inputStream?

o meu pdf ja está gerado só quero abrir ele em algum leitor de pdf do sistema…
pelo jar…

obrigado…

Perai, tu comentou que pela IDE funcionava o que tu queria, e não tu nao ta usando classloader não. (Pelo menos antes de eu postar :slight_smile: )
Se pela tua IDE funcionava, mas ao executar pelo JAR ele não acha o arquivo, usa a solução que te dei que vai funcionar. Isso responde a sua primeira pergunta.

Abrir o PDF é uma outra pergunta, ai tu faz assim: (Com o Java 6)

...
   java.awt.Desktop desktop = java.awt.Desktop.getDesktop();  
   desktop.open(new File("arquivo.pdf"));  
...

Não esquece de usar a busca do forum que ja dizia como abrir PDF.

Abraço

S

eu usei o class loader depois que vc falou… hehe
dae nao sabia o que fazer com o inputStream…

java.awt.Desktop desktop = java.awt.Desktop.getDesktop();    
 desktop.open(new File("arquivo.pdf"));

assim funciona de dentro da ide… mas no jar nao…
o pior é que nao da nenhum exception… so nao faz nada…

mas valeu pela atenção…

fsjr

Cara, mesma coisa, so que dessa vez pega a URL de onde esta o arquivo que tu quer e ai tu acha o path dele … olha so não testei mas tenta assim …

...
java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
URL url = Thread.currentThread().getContextClassLoader().getResource("arquivo.pdf");	   
desktop.open(new File(url.getPath()));   
...

falows

S

tipo nao roda nem da ide agora…
mas se eu pegar o caminho desse log C:\Do…

e executar ele abre o arquivo, se eu tirar o “%20” e colocar espaço normal…

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: The file: C:\Documents%20and%20Settings\Administrador\Meus%20documentos\NetBeansProjects\MyPrj\EscalonadorProcessos\build\classes\ajuda.pdf doesn't exist.
        at java.awt.Desktop.checkFileValidation(Desktop.java:191)
fsjr

Cara coloquei um arquivo pdf para testar no diretorio da aplicacao e funcionou perfeitamente com o codigo abaixo:

import java.io.File;
import java.io.IOException;
import java.net.URL;

import javax.swing.JFrame;


public class TesteJL extends JFrame {	
	
	private void init() {			
		java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
		URL url = Thread.currentThread().getContextClassLoader().getResource("teste.pdf");	   
		try {
			desktop.open(new File(url.getPath()));
		} catch (IOException e) {			
			e.printStackTrace();
		}	
		

	}
	
	
	public static void main(String[] args) {
		TesteJL tjl = new TesteJL();
		tjl.init();
	}

}

A tua mensagem diz que o arquivo nao existe, você ta ratiando em alguma coisa.

Abraço

71C4700

o arquivo em pdf nao estava dentro de outro diretorio (image)
voce deveria subir um diretorio e entrar na pasta image pra procura teu pdf
Abraço

Criado 10 de julho de 2008
Ultima resposta 23 de jul. de 2008
Respostas 8
Participantes 3