[RESOLVIDO] Erros ao executar .jar em outros computadores SOCORRO

Fala pessoal! Estou com um problema e não faço a minima ideia de resolver…
Quando eu testo o projeto no Netbeans ele executa sem nenhum erro tudo perfeito! Mesma coisa quando gero o .jar e executo no mesmo computador que eu contrui o projeto, mas quando eu tento executar o mesmo .jar em outros computadores ele da alguns erro na janela de login eu insiro usuario e senha clico em entrar e nada acontece, já tentei fazer um botão que pula a validação e ja abre a tela principal e novamente nada acontece.

Acredito que o porblema não seja os os códigos mas mesmo assim Segue os códigos:

Tela Login:

package visao;

import modeloBeans.BeansLogin;
import modeloConnection.ConexaoBD;
import modeloDao.DaoLogin;

public class TelaLogin extends javax.swing.JFrame {

    ConexaoBD con = new ConexaoBD();
    BeansLogin beansl = new BeansLogin();
    DaoLogin daol = new DaoLogin();
    
    public TelaLogin() {
        initComponents();
    }

    
    @SuppressWarnings("unchecked")
    }// </editor-fold>                        

//Botão Entrar
    private void btnEntrarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        beansl.setSenha(txtSenha.getText());
        beansl.setUsuario(txtUsuario.getText());
        daol.Logar(beansl);
    }                                         
//Botão Cancelar
    private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {                                            
        System.exit(0);
    }                                           
//Botão Pular   
    private void btnPularActionPerformed(java.awt.event.ActionEvent evt) {                                         
       TelaPrincipal tela = new TelaPrincipal();
       tela.setVisible(true);
       dispose();
    }                                        

    
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(TelaLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(TelaLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(TelaLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(TelaLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>


        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new TelaLogin().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton btnCancelar;
    private javax.swing.JButton btnEntrar;
    private javax.swing.JButton btnPular;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JLabel lblSenha;
    private javax.swing.JLabel lblUsuario;
    private javax.swing.JPasswordField txtSenha;
    private javax.swing.JTextField txtUsuario;
    // End of variables declaration                   
}

DaoLogin:

package modeloDao;

import java.sql.SQLException;
import javax.swing.JOptionPane;
import modeloBeans.BeansLogin;
import modeloConnection.ConexaoBD;
import visao.TelaLogin;
import visao.TelaPrincipal;

public class DaoLogin {
    
    
    ConexaoBD con = new ConexaoBD();
    BeansLogin beansl = new BeansLogin();
    
        public void Logar(BeansLogin beansl) {
            
            try {
            con.conectar();
            
            con.executaSql("select * from usuario where usuario ='"+beansl.getUsuario()+"'");
            con.rs.first();
            
            if(con.rs.getString("senha").equals(beansl.getSenha())){
                JOptionPane.showMessageDialog(null,"Conectado com Sucesso");
                TelaPrincipal tela = new TelaPrincipal();
                TelaLogin tela2 = new TelaLogin();
                tela.setVisible(true); 
                tela2.dispose();
            }else{
                JOptionPane.showMessageDialog(null,"Senha ou Usuario invalidos");
            }
            
            con.desconetar();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null,"Erro ao encontrar Usuario\n Erro:"+ex);
        }
        
        }
    
}

Desde já agraçedo :slight_smile:

se ele abre a tela de login então acredito eu que o problema não seja no jar, você instaladou o banco em algum gerenciador e apontou ele de forma correta nessa outra maquina?

1 curtida

O banco de dados esta hospedado, ja funcei no site hospedagem e no phpmyadmin e não tinha nenhuma opção para apontar o banco de dados pra outra maquina

Coloca o logar dentro de:

try{

}catch(Exception e){
  JOptionPane.showMessageDialog(null,"Erro: "+e.getMessage());
}

pra ver se dispara uma excessão. Outra coisa, verifica a versão do Java instalado em sua máquina e no outro computador.

2 curtidas

Apareceu
Erro: null
:confused:

Põe um printStackTrace e roda em linha de comando, vai ser fácil identificar onde está seu BUG.

try {

} catch (Throwable t) {
  t.printStackTrace();
}
1 curtida

Quando eu coloquei o t.printStackTrace(); no catch não apareceu nada ai eu coloquei um

JOptionPane.showMessageDialog 

e agora apareceu o

Erro: java.langNullPointerExeption

Matheus, posta a sua classe ConexaoBD, como que você esta apontando o banco de dados no micro onde
você programa e no outro micro onde você testou ? como esta a URL de conexão com o banco ?
o StackTrace esta mostrando que você esta passando algum dado Null. pode ser a URL, Driver. usuario, senha etc !!

1 curtida

O código é o mesmo pros dois micros, o .jar que eu rodo no micro que eu programei e executa sem erros é o mesmo .jar que eu rodo no outro micro que da o erro
Segue o código:

package modeloConnection;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

public class ConexaoBD {

    private static Object getConexaoBD() {
        throw new UnsupportedOperationException("Not supported yet."); 
    }
            
    public Statement stm = null; 
    public ResultSet rs = null;
    public Connection con = null; 

public void conectar() { 

              try {
                  
                    Class.forName("com.mysql.jdbc.Driver");
                    con = (Connection) DriverManager.getConnection("jdbc:mysql://bancodados.mysql.uhserver.com/bancodados","banco","host12345");
                    System.out.println("Conexão Realiza com sucesso");
              
              } catch (ClassNotFoundException ex) {
                  
                  Logger.getLogger(ConexaoBD.class.getName()).log(Level.SEVERE, null, ex);
              
              } catch (SQLException e) {
                  
                    JOptionPane.showMessageDialog(null, "Erro ao conectar no banco de dados:\n"+e.getMessage()); 
      
              }
}

public void executaSql(String sql) {
    
                try {
                    
                    stm = con.createStatement(rs.TYPE_SCROLL_INSENSITIVE,rs.CONCUR_READ_ONLY);
                    rs = stm.executeQuery(sql);
                    
                } catch (SQLException ex) {
                    
                    JOptionPane.showMessageDialog
                    (null, "Erro no método executaSQL:\n"+ex.getMessage()); 
                    
                }
                }
 

public void desconetar() {
 
        try {
            con.close();
            System.out.println("Desconectado do Banco de Dados com Sucesso");
        } catch (SQLException ex){
            JOptionPane.showMessageDialog(null, "Erro ao desconectar Do Banco de Dados:\n"+ex.getMessage());
        }
        }
    
}

OBS: o banco de daos está hospedado na uol

1 curtida
public void conectar() { 

          try {
              
                Class.forName("com.mysql.jdbc.Driver");
                con = (Connection) DriverManager.getConnection("jdbc:mysql://bancodados.mysql.uhserver.com/bancodados","banco","host12345");
                System.out.println("Conexão Realiza com sucesso");
          
          } catch (ClassNotFoundException ex) {
              
              Logger.getLogger(ConexaoBD.class.getName()).log(Level.SEVERE, null, ex);
          
          } catch (SQLException e) {
              
                JOptionPane.showMessageDialog(null, "Erro ao conectar no banco de dados:\n"+e.getMessage()); 
  
          }

}

bom… você disse que o banco esta hospedado no Uol host ! neste caso eu acho que não é este caso então. … só uma coisa, logo depois qudo ele compara senha nesta parte

ele te mostra abaixo a mensagem ?? [quote=“Matheus_Costa, post:1, topic:347626”]
JOptionPane.showMessageDialog(null,“Conectado com Sucesso”);
[/quote]

se a conexão estiver sendo feita normalmente, pelo que tá ai é pra te mostrar esta mensagem, e
depois mostrar a tela principal !

vou almocar , retorno em 1:40hs. se nao tiver solucionado dps dou continuidade com você, blz !

1 curtida

No micro que eu programei ele mostra a mensagem sim, já no outro micro ele não mostra a mensagem, somente a mensagem de erro:

Erro: java.langNullPointerExeption

olá… neste outro micro, onde você esta guardando os .jar , a biblioteca do mysql , por ex o :
com.mysql.jdbc_5.1.5.jar ( ou outra versão anterior/atual ) , onde esta ? no micro onde esta rodando, onde que você guarda as bibliotecas do projeto ? e no micro onde não esta rodando, onde fica a
biblioteca do projeto ?

1 curtida

Cara consegui saber o que era o erro, estava tentendo executar o programa fora da pasta dist no outro micro que é onde esta as bibliotecas, esta sua ultima resposta me fez lembrar das bibliotecas VALEW!!!
Agora eu passei a pasta dist pro outro micro com o .jar dentro e funcionou sem erros

quem bom !! marca lá o post como resolvido … abraço

1 curtida

Roda em linha de comando, que vai aparecer toda a pilha de chamada, aí você vai identificar onde aconteceu o NullPointerException