Executavel Java não funciona

8 respostas
javaprogramação
L

bom dia pessoal.

É o seguinte…eu criei um sitema em java no Netbeans. Esta funcionando tudo. O banco de dados é o Mysql. Dentro do Netbenas, o sistema funciona que é uma maravilha, mas quando peço pra ele limpar e contruir um executavel ele nao funciona. Ele não abre a jenela de Login. Ele cria o executavel, mas o executavel nao abre. O java esta instalado e tudo…mas nada acontece.

Alguem saberia o que poderia ser?

eu vi esse erro tambem:

Exception in thread AWT-EventQueue-0 java.lang.NullPointerException

at javax.swing.ImageIcon.(Unknown Source)

at br.com.infox.telas.TelaLogin.(TelaLogin.java:93)

at br.com.infox.telas.TelaLogin$2.run(TelaLogin.java:216)

at java.awt.event.InvocationEvent.dispatch(Unknown Source)

at java.awt.EventQueue.dispatchEventImpl(Unknown Source)

at java.awt.EventQueue.access$500(Unknown Source)

at java.awt.EventQueue$3.run(Unknown Source)

at java.awt.EventQueue$3.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)

mas não existe nenhum erro no codigo.

8 Respostas

S

Existe sim, a forma como você está inicializando o ImageIcon na linha 93 do TelaLogin, não serve para imagens que estão dentro do JAR.
Para carregar arquivos que estão dentro do JAR é necessário utilizar o getClass().getResourceAsStream("/" + "caminho relativo do arquivo").

L

mas o que vc quer dizer com isso aqui: “/”

L

meu codigo esta assiim lá
lblStatus.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br./com/infox/icones/dberror.png")));

L

Pessoal…eu ainda estou com dificuldades para rodar duas imagens dentro do JAR. vou mostrar o codigo.
Ele consiste no seguinte. Se o sistema estiver conectado com o banco, ele mostrará uma imagem de OK. Mas se ele nao estiver conectado com o banco, ele mostrará uma imagem de erro.
então criei uma condição pra isso… Ou seja, dentro do Netbeans funciona, mas o executavel nao funciona. pq ele apos ser construido da erro e nao abre por conta dessas duas imagens, mas não estou conseguindo entender o erro. Segue o codigo

public TelaLogin() {

initComponents();

conexao = ModuloConexao.conector();

<a href="//System.out.println" rel="noopener nofollow ugc">//System.out.println</a>(conexao);
if(conexao != null){
        lblStatus.setIcon(new javax.swing.ImageIcon(getClass().getResource("br./com/infox/icones/dbok.png")));
    }else{
        lblStatus.setIcon(new javax.swing.ImageIcon(getClass().getResource("br./com/infox/icones/dberror.png")));
    }
 
   
}
S

Isso é uma barra, quando você usa a barra no início do caminho, ele vai procurar o arquivo em relação ao classpath da aplicação.

S

O getResource retorna URL que só servem pra acessar arquivos no sistema operacional, não entradas dentro de um arquivo JAR.

Modifique seu código para usar getResourceAsStream.

E seu caminho também está errado, você pôs um ponto após o br.

S

Como já foi dito, você tem que usar getResourceAsStream para carregar arquivos que estão dentro do JAR.

L

opa…eu consegui corrigir o erro com a linha de codigo original. O problema era o caminho que estava errado. Pelo menos no codigo que eu fiz, o erro estava no caminho dos arquivos. tinha um “ponto” no lugar errado. Mas muito obrigado por ajudar. Valeu mesmo

Criado 16 de março de 2022
Ultima resposta 17 de mar. de 2022
Respostas 8
Participantes 2