Erro "URI is not hierarchical" ao abrir arquivo .pdf na execução do .jar [RESOLVIDO]

Pessoal, boa tarde!

Tenho uma aplicação com um botão que deveria abrir um PDF. Segue código que utilizei no botão para implementar essa funcionalidade:

        try 
        {  
            File pdf = new File(getClass().getResource("/GUI/Manual_SAPA.pdf").toURI()); 
            Desktop.getDesktop().open(pdf);  
        }
        catch(Exception erro) 
        {  
            JOptionPane.showMessageDialog(null, erro.getMessage(), "ERRO", JOptionPane.ERROR_MESSAGE);
        }

Ao testar executando o programa dentro da IDE (no caso, o NetBeans), funciona perfeitamente. Porém, quando gerei o .jar, ao clicar no referido botão ocorre o erro “URI is not hierarchical”.

OBS.: GUI é o package onde se encontra o pdf, que é o mesmo onde o .java do botão está.

Pesquisei bastante sobre o problema e inclusive aqui no fórum tem tópicos sobre isso, porém nenhum resolvido ou com uma dica que ajudasse.

Desde já agradeço a ajuda,
Mariana

Você precisa extrair o arquivo de dentro do Jar. Vou dar um exemplo daqui a pouco.

import java.io.*;
import java.awt.*;

public class TesteExtracaoJar {
    public static void main (String[] args) throws Exception {
	    TesteExtracaoJar tej = new TesteExtracaoJar();
		tej.teste();
	}
	
	public void teste() throws Exception {
		BufferedInputStream bis = new BufferedInputStream (getClass().getResourceAsStream ("/resources/teste.pdf"));
		File nomeArquivoPDF = new File ("testeExtraido.pdf");
		FileOutputStream fos = new FileOutputStream (nomeArquivoPDF);
		byte[] bytes = new byte[8192];
		int nBytes;
		while ((nBytes = bis.read (bytes)) > 0) {
			fos.write (bytes, 0, nBytes);
		}
		fos.close();
		bis.close();
		Desktop.getDesktop().open (nomeArquivoPDF);
	}
}

A propósito, por algum motivo obscuro, getDesktop().open não está conseguindo abrir, na minha máquina, o PDF, embora ele esteja perfeitamente copiado. Sei lá o que ocorreu.

Obrigada!

Vou testar aqui e dou um retorno no fórum.

Funcionou, tanto dentro da IDE quanto pelo JAR.

Muito obrigada! =]