Método "getResource()" retornando "null"

16 respostas
Miguel_Avila

Estou com um problema no meu código, basicamente quando tento achar um arquivo passando um diretório absoluto pro meio do método getResource() ele retorna null.
assim esta a organização dos pacotes:

=src
==programaTeste
===teste
====arquivo.txt

então quando rodo a linha:

System.out.println(getClass().getResource("/teste/arquivo.txt"));

ele imprime null e não a URL do arquivo.txt, alguém sabe como resolver?

16 Respostas

staroski

A pasta src é a raiz do seu classpath então o caminho tem que ser "/programaTeste/teste/arquivo.txt".

Mas isso só vai funcionar enquanto executar no sistema de arquivos.

Se colocar seu programa em um JAR, você vai precisar utilizar getResourceAsStream.

Miguel_Avila

assim também ele está retornando nulo

staroski

Então quando você está executando o Java o arquivo em questão não está no classpath de sua aplicação.

Como você está compilando e como está executando?

Miguel_Avila

estou usando o Netbeans, não estou compilando nem executando manualmente

F

Ou invês do getClass(); coloque: (nome da classe).class.getResource("/programaTeste/teste/arquivo.txt");

Miguel_Avila

também retornou nulo

Miguel_Avila

img

como esta mostrando na IDE (renomeei o “arquivo.txt” para “a.txt”)

rodriguesabner

vc ta usando maven//gradle?

Miguel_Avila

nope

staroski

Após compilar, o arquivo .txt foi parar dentro da estrutura da pasta build?

F

tente colocar o /src/ antes

Miguel_Avila

img

-> parece que não

Miguel_Avila

também não deu certo

staroski

Não uso NetBeans, tens que descobrir como adicionar recursos ao classpath do projeto.

rodriguesabner

Bom, tentei aqui e foi normal.

System.out.println("Mostrar ícone");
    System.out.println(JavaApplication2.class.getResource("/programateste/teste/fb.png"));

path

image

Miguel_Avila

ontem fiquei tentando resolver isso e se compilar e executar manualmente pelo terminal não da esse problema. Acredito que seja alguma configuração do Netbeans mesmo

Criado 17 de abril de 2020
Ultima resposta 18 de abr. de 2020
Respostas 16
Participantes 4