Edit: Resolvi meu problema, o getResource estava sendo chamado no ClassLoader do meu jar loader, agora é so dar a referência do icone por lá.
Olá,
Criei um jar loader que baixa o jar por um link que é decryptado baseado na integridade do loader.
O loader consegue baixar o jar certinho e executá-lo sem problemas.
Meu problema é que o ícone do JFrame que é chamado de dentro do jar não é carregado.
O ícone fica em src/resources/icon.png. Então resolvi informar um Image como argumento assim o JFrame teria o ícone do próprio loader.
Então fiz o seguinte:
Constructor<?> constructor = jframe.getDeclaredConstructor(Image.class);
constructor.newInstance(getIconImage());
Isso funciona perfeitamente se o jar não estiver obfuscado.
Porém quando eu aplico obfsucação, o icon no constructor do JFrame é nulo, não sei como isso acontece pois
getDeclaredConstructor(Image.class);
Não invoca “NoSuchMethodException” portanto o constructor com o argumento Image existe mesmo após a obfuscação, e verifiquei isso pelo método class.getConstructors() que mostra tal.
Então a minha pergunta é, porque qualquer instância enviada pelo newInstance(object) é recebida como nulo pelo constructor?
Obrigado.