Projeto JAVA desktop importado para o eclipse

Boa tarde amigos;

este projeto já era do eclipse mesmo.

eu importei um projeto de um outro workspace indo em File > import -> Existing Projecs into Workspace.

ai agora quando vai usar minhas classe aparece este erro, na verdade quando eu mando logar:

imagem1
imagem2

Precisaria ter acesso a mais linhas do log para te ajudar melhor…tente ver a causa raíz, procure pela linha que contém algo como “root cause exception” no log. De qualquer forma, da pra ver que trata-se de uma classe não encontrada, verifique se as dependências do projeto estão presentes.

Amigo, para projeto desktop eu sugiro utilizar NetBeans pois é muito mais fácil e rápido para desenhar a tela (único “defeito” que todos dizem é que cria mto código lixo) mas mesmo assim, ainda prefiro NetBeans para muitas coisas!

a empresa que trabalho utiliza esta ferramenta. Preciso utiliza-la, mas me parece que o erro é com esta classe, e ai eu não entendi, ela está correta, vejam.:

package br.jdbc.factory;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ResourceBundle;

public class Factory {
    private static Factory instance;
    private static ResourceBundle config;
    //
    // private Factory() {
    // config = ResourceBundle.getBundle("config");
    // }

    public static Factory getInstance() {
        if (instance == null) {
            instance = new Factory();
        }
        return instance;
    }

    public static Connection getConnection() throws ClassNotFoundException, SQLException {
         Class.forName(config.getString("br.jdbc.bd.mysql"));
         return DriverManager.getConnection(config.getString("br.jdbc.bd.con"),
                 config.getString("br.jdbc.bd.user"),
                 config.getString("br.jdbc.bd.pass"));
        
//        Class.forName("org.firebirdsql.jdbc.FBDriver");
//        return DriverManager.getConnection("jdbc:firebirdsql:localhost/3050:C://DB.FDB", "sysdba", "masterkey");

    }

}

Estou usando o jdk 1.8, e tb estou usando properts veja ele.:

br.jdbc.bd.mysql=com.mysql.jdbc.Driver
br.jdbc.bd.con=jdbc:mysql://localhost:3306/aula
br.jdbc.bd.user=root
br.jdbc.bd.pass=1

abaixo fiz uma conexão com o firebird e aparece o mesmo erro.

precisamente nesta linha.:

     Class.forName(config.getString("br.jdbc.bd.mysql"));

Então, vejo os seguintes pontos que podem estar com erro no seu código.

1 - O construtor está comentado, logo o ResourceBundle não é iniciado causando NullPointerException;
2 - O método getConnection é estatico, logo não preciso passar pelo construtor causando o mesmo erro do item 1;
3 - Seu método getInstance não está usando o padrão Singleton corretamente;

package br.jdbc.factory;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ResourceBundle;

public class Factory {
  private final Factory instance = new Factory();
  private String driver;
  private String url;
  private String user;
  private String password;
  
  private Factory() {
    super();
    try {
          ResourceBundle config = ResourceBundle.getBundle("config");
	  this.driver = config.getString("br.jdbc.bd.mysql");
	  this.url = config.getString("br.jdbc.bd.con");
	  this.user = config.getString("br.jdbc.bd.user");
	  this.password = config.getString("br.jdbc.bd.pass");
	  
	  // Pode validar os parametros aqui
	  if((this.driver == null) || (this.driver.trim().isEmpty())) {
	    throw new IllegalArgumentException("A propridedade do driver JDBC esta vazia");
	  }
	  // Fazer a mesma coisa para os demais(url, user e password)
	  
	  // Verificar se o driver JDBC esta no classpath
	  Class.forName(this.driver);	
    } catch (ClassNotFoundException cnfe) {
	  throw new IllegalStateException("Driver JDBC indisponivel " + this.driver);
    } catch (Exception e) {
	  throw new IllegalStateException(e);
    }
  }

  public static Factory getInstance() {
    return Factory.instance;
  }

  public Connection getConnection() throws ClassNotFoundException, SQLException {
    Connection connection = DriverManager.getConnection(this.url, this.user, this.password);
    connection.setAutocommit(false); // Deixar que os clientes facam o commit
    return connection;
  }

}
1 curtida

funcionou cara muito obrigado…