Olá! Minha aplicação fica alocada no SystemTray. Quando eu uso o caminho absoluto da imagem no meu código (pegando desde a raiz e tal), a imagem é exibida. No caminho relativo, não. Porém a imagem está no meu projeto.
Tentei ver por que está vindo nulo e pensei ser o caminho, mas como você indiciou na resposta não creio ser isso…
EDIT: Tratando um pouco mais as exceptions, entendi que ele não tá procurando o arquivo… Ele só está retornando null. E eu não consigo entender o pq…
EDIT2: O arquivo, quando debugado, retorna “null”. E nem com caminho absoluto ele consegue achar!
staroski
Por acaso a pasta imgs está no classpath de sua aplicação?
Se estiver, então o caminho relativo é somente "/imagem.jpg".
O getClass().getResourceAsStream não funciona com caminhos absolutos, só funciona com caminhos relativos.
Por isso o caminho tem que começar com "/", pra ele procurar a partir da raíz do classpath de sua aplicação.
A
anon43986829
Entendi, staroski. Eu não sei bem o que é esse classpath, seria tipo “a pasta do Projeto”? (Eu não lembro nunca de ter configurado isso, então acredito que esteja Default. Uso Linux, se muda algo).
staroski
Não, classpath é uma propriedade de sistema do Java, pode conter diretórios e/ou arquivos .jar e .zip.
São os caminhos onde a máquina virtual vai tentar localizar classes e recursos (imagens ou outros arquivos) de sua aplicação.
Você pode setar ele em linha de comando com a propriedade, exemplo: