Problema ao gerar Jar

6 respostas
R

Galera tentei gerar um jar com o programa abaixo, porem quando eu gero e tento entrar da erro "Could not find the main class", alguem ajuda.

import java.awt.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.ParseException;

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.MaskFormatter;

public class cadastro extends Janela implements ActionListener {
	Connection Con;
	Statement Stm;
	String strMsg = "";
    private JLabel jcomp1;
    private JLabel jcomp2;
    private JPasswordField jcomp3;
    private JLabel jcomp4;
    private JLabel jcomp5;
    private JLabel jcomp6;
    private JTextField jcomp7;
    private JPasswordField jcomp8;
    private JLabel jcomp9;
    private JTextField jcomp10;
    private JLabel jcomp11;
    private JTextField jcomp12;
    private JTextField jcomp13;
    private JTextField jcomp14;
    private JFormattedTextField jcomp15;
    private JComboBox jcomp16;
    private JLabel jcomp17;
    private JLabel jcomp18;
    private JRadioButton jcomp19;
    private JRadioButton jcomp20;
    private JLabel jcomp21;
    private JTextField jcomp22;
    private JFormattedTextField jcomp23;
    private JLabel jcomp24;
    private JLabel jcomp25;
    private JLabel jcomp26;
    private JFormattedTextField jcomp27;
    private JComboBox jcomp28;
    private JLabel jcomp29;
    private JButton cadastrar;

    public cadastro() {
    	super("Cadastrar Cliente", new Dimension (600, 510));
    	cdstro();
    	int intRes = Conectar();
		if(intRes == 0){
			show();
			return;
		}
	if(intRes == 1) strMsg = "Driver Não Encontrado";
	if(intRes == 2) strMsg = "Erro de Conexão com o Banco de Dados";
	JOptionPane.showMessageDialog(null, strMsg,"Erro",0);
	System.exit(0);	
    }
    public void cdstro(){
        //construct preComponents
        String[] jcomp16Items = {"-----------------------", "Banco do Brasil", "Itau", "Santander", "Bradesco", "CitiBank", "Nossa Caixa", "Banco Real", "Unibanco", "Safra"};
        String[] jcomp28Items = {"------------------", "Visa", "Mastercard", "Ourocard", "Outros"};

        cadastrar = new JButton("Cadastrar");
        add(cadastrar);
        cadastrar.setBounds(230,430,100,25);
        cadastrar.addActionListener(this);
        
        MaskFormatter mask = null;
        MaskFormatter mask2 = null;
        MaskFormatter mask3 = null;
	    
		try {
			mask = new MaskFormatter("####-*");
			mask2 = new MaskFormatter("###");
			mask2.setValidCharacters("[telefone removido]");
			mask3 = new MaskFormatter("##/##/####");
		} catch (ParseException e) {
			e.printStackTrace();
		}
        
        //construct components
        jcomp1 = new JLabel ("Nome:");
        jcomp2 = new JLabel ("Cadastrar");
        jcomp3 = new JPasswordField ();
        jcomp4 = new JLabel ("Login:");
        jcomp5 = new JLabel ("Senha:");
        jcomp6 = new JLabel ("Endereço:");
        jcomp7 = new JTextField ();
        jcomp8 = new JPasswordField ();
        jcomp9 = new JLabel ("Confirmar Senha:");
        jcomp10 = new JTextField ();
        jcomp11 = new JLabel ("E-Mail:");
        jcomp12 = new JTextField ();
        jcomp13 = new JTextField ();
        jcomp14 = new JTextField ();
        jcomp14.addActionListener(this);
        jcomp15 = new JFormattedTextField();
        jcomp15.setHorizontalAlignment(SwingConstants.CENTER);
        mask.install(jcomp15);
        jcomp15.addActionListener(this);
        jcomp16 = new JComboBox (jcomp16Items);
        jcomp17 = new JLabel ("Agência:");
        jcomp18 = new JLabel ("Banco:");
        jcomp19 = new JRadioButton ("Depósito Bancario");
        jcomp19.addActionListener(this);
        jcomp19.setBackground(getForeground());
        jcomp20 = new JRadioButton ("Cartão");
        jcomp20.addActionListener(this);
        jcomp20.setBackground(getForeground());
        jcomp21 = new JLabel ("Conta Corrente:");
        jcomp22 = new JTextField ();
        jcomp23 = new JFormattedTextField ();
        jcomp23.setHorizontalAlignment(SwingConstants.CENTER);
        mask2.install(jcomp23);
        jcomp24 = new JLabel ("Número do Cartão:");
        jcomp25 = new JLabel ("Código de Segurança:");
        jcomp26 = new JLabel ("Data de Vencimento:");
        jcomp27 = new JFormattedTextField ();
        jcomp27.setHorizontalAlignment(SwingConstants.CENTER);
        mask3.install(jcomp27);
        jcomp28 = new JComboBox (jcomp28Items);
        jcomp29 = new JLabel ("Bandeira do Cartão:");

        
        jcomp15.setEnabled(false);
        jcomp14.setEnabled(false);
        jcomp22.setEnabled(false);
        jcomp23.setEnabled(false);
        jcomp27.setEnabled(false);
        jcomp28.setEnabled(false);
        jcomp16.setEnabled(false);	
        
        //adjust size and set layout
        setPreferredSize (new Dimension (588, 415));
        setLayout (null);

        //add components
        add (jcomp1);
        add (jcomp2);
        add (jcomp3);
        add (jcomp4);
        add (jcomp5);
        add (jcomp6);
        add (jcomp7);
        add (jcomp8);
        add (jcomp9);
        add (jcomp10);
        add (jcomp11);
        add (jcomp12);
        add (jcomp13);
        add (jcomp14);
        add (jcomp15);
        add (jcomp16);
        add (jcomp17);
        add (jcomp18);
        add (jcomp19);
        add (jcomp20);
        add (jcomp21);
        add (jcomp22);
        add (jcomp23);
        add (jcomp24);
        add (jcomp25);
        add (jcomp26);
        add (jcomp27);
        add (jcomp28);
        add (jcomp29);

        //set component bounds (only needed by Absolute Positioning)
        jcomp1.setBounds (25, 45, 100, 25);
        jcomp2.setBounds (260, 0, 100, 25);
        jcomp3.setBounds (70, 150, 120, 25);
        jcomp4.setBounds (25, 100, 100, 25);
        jcomp5.setBounds (25, 150, 100, 25);
        jcomp6.setBounds (280, 45, 100, 25);
        jcomp7.setBounds (345, 45, 210, 25);
        jcomp8.setBounds (345, 150, 120, 25);
        jcomp9.setBounds (240, 150, 100, 25);
        jcomp10.setBounds (345, 95, 210, 25);
        jcomp11.setBounds (300, 95, 100, 25);
        jcomp12.setBounds (70, 45, 180, 25);
        jcomp13.setBounds (70, 100, 160, 25);
        jcomp14.setBounds (320, 240, 160, 25);
        jcomp15.setBounds (85, 240, 100, 25);
        jcomp16.setBounds (85, 285, 120, 25);
        jcomp17.setBounds (25, 240, 100, 25);
        jcomp18.setBounds (35, 285, 100, 25);
        jcomp19.setBounds (165, 195, 130, 25);
        jcomp20.setBounds (310, 195, 100, 25);
        jcomp21.setBounds (215, 240, 100, 25);
        jcomp22.setBounds (145, 335, 130, 25);
        jcomp23.setBounds (430, 335, 40, 25);
        jcomp24.setBounds (30, 335, 110, 25);
        jcomp25.setBounds (300, 335, 130, 25);
        jcomp26.setBounds (15, 375, 125, 30);
        jcomp27.setBounds (145, 380, 100, 25);
        jcomp28.setBounds (430, 380, 100, 25);
        jcomp29.setBounds (310, 380, 115, 25);
    }

	public int Conectar(){
		try{
			Class.forName("com.mysql.jdbc.Driver");
		}
		catch(ClassNotFoundException cnfe){
			return 1;
		}
		try{
			Con = DriverManager.getConnection("jdbc:mysql://localhost:3306/estacionamento","root","011095");
			Stm = Con.createStatement();
			return 0;
		}
		catch(SQLException sqle){
			return 2;
		}
	}
	public void Desconectar(){
		try{
		Stm.close();
	}
		catch(SQLException sqle){}
		
	}
	
    public void actionPerformed(ActionEvent e){
    if(e.getSource() == jcomp19){
    	jcomp15.setEnabled(true);
    	jcomp14.setEnabled(true);
    	jcomp16.setEnabled(true);
    	
    	jcomp28.setEnabled(false);
    	jcomp22.setEnabled(false);
    	jcomp23.setEnabled(false);
    	jcomp27.setEnabled(false);
    	
    	jcomp20.setSelected(false);
    }
    if(e.getSource() == jcomp20){
    	jcomp28.setEnabled(true);
    	jcomp22.setEnabled(true);
    	jcomp23.setEnabled(true);
    	jcomp27.setEnabled(true);
    	
    	jcomp15.setEnabled(false);
    	jcomp14.setEnabled(false);
    	jcomp16.setEnabled(false);
    	jcomp19.setSelected(false);
    }
    if(e.getSource() == cadastrar){
    	if(jcomp12.getText().trim().compareTo("") == 0){
    		JOptionPane.showMessageDialog(null, "Insira o Nome");
    		return;
    	}
    	if(jcomp7.getText().trim().compareTo("") == 0){
    		JOptionPane.showMessageDialog(null, "Insira o Endereço");
    		return;
    	}
    	if(jcomp13.getText().trim().compareTo("") == 0){
    		JOptionPane.showMessageDialog(null, "Insira o Login");
    		return;
    	}
    	if(jcomp10.getText().trim().compareTo("") == 0){
    		JOptionPane.showMessageDialog(null, "Insira o E-Mail");
    		return;
    	}
    	if(jcomp8.getText().trim().compareTo("") == 0){
    		JOptionPane.showMessageDialog(null, "Insira a Confirmação de Senha");
    		return;
    	}
    	if(jcomp3.getText().equals(jcomp8.getText()) == false){
    		JOptionPane.showMessageDialog(null, "Senhas Não Conferem");
    		return;
    	}
    	if(jcomp19.isSelected() == false && jcomp20.isSelected() == false){
    		JOptionPane.showMessageDialog(null, "Selecione o Tipo de Doação a Fazer");
    		return;
    	}
    	if(jcomp19.isSelected() == true){
    	if(jcomp15.getText().trim().compareTo("-") == 0){
    		JOptionPane.showMessageDialog(null, "Insira sua Agencia");
    		return;
    	}
    	if(jcomp15.getText().trim().compareTo("") == 0){
    		JOptionPane.showMessageDialog(null, "Insira sua Conta Corrente");
    		return;
    	}
    	if(jcomp16.getSelectedItem().equals("-----------------------")){
    		JOptionPane.showMessageDialog(null, "Insira o seu Banco");
    		return;
    	}
    	if(jcomp20.isSelected() == true){
    	if(jcomp22.getText().trim().compareTo("") == 0){
    		JOptionPane.showMessageDialog(null, "Insira o Número do Cartão");
    		return;
    	}
    	if(jcomp23.getText().trim().compareTo("") == 0 || jcomp23.getText().length() < 3){
    		JOptionPane.showMessageDialog(null, "Insira o Código de Segurança do Cartão");
    		return;
    	}
    	if(jcomp27.getText().trim().compareTo("/  /") == 0 || jcomp27.getText().length() < 10){
    		JOptionPane.showMessageDialog(null, "Insira a Data de Vencimento do Cartão");
    		return;
    	}
    	if(jcomp28.getSelectedItem().equals("------------------")){
    		JOptionPane.showMessageDialog(null, "Insira a Bandeira do Cartão");
    		return;
    	}
    	}
    	}
    	else{
    		JOptionPane.showMessageDialog(null, "OK");
    	}
    }
    }

    public static void main (String[] args) {
        new cadastro().show();
}

6 Respostas

discorpio

Boa noite Rodrigolujan.

Toda aplicação em desktop, tem que ter um método starter main, que vai dar ínicio a execução da mesma. Este método geralmente é declarado em uma classe “main”, porém não é necessário estar na classe “main”, basta tão somente voce colocá-lo na sua classe principal, desta forma:

public class FramePrincipal extends JFrame {

      // Método starter.
      public static void main(String args[]){
              FramePrincipal frame = new FramePrincipal();
              frame.setVisible(true);
      }

      .....
      .....
}
R

Coloquei Assim

public static void main (String[] args) { new cadastro().show(); cadastro frame = new cadastro(); frame.setVisible(true); }

Só que ainda está dando erro.

discorpio

Boa tarde Rodrigo.

rodrigolujan:
Coloquei Assim

public static void main (String[] args) { new cadastro().show(); cadastro frame = new cadastro(); frame.setVisible(true); }

Só que ainda está dando erro.

Em primeiro lugar, remova a seguinte instrução do método “main”:

new cadastro().show();

Em segundo lugar, dentro do seu método construtor, corrija as instruções para o seguinte código:

public cadastro() {  
        super("Cadastrar Cliente", new Dimension (600, 510));
        int intRes = Conectar();
        switch (intRes){
             case 0: strMsg = "Conexão feita com sucesso"; break;
             case 1: strMsg = "Driver Não Encontrado"; break;
             case 2: strMsg = "Erro de Conexão com o Banco de Dados"; break;
        }
        JOptionPane.showMessageDialog(null, strMsg,"Aviso",0);  
        if(intRes == 0){  
            cdstro(); 
        }  else {
            frame.dispose();
            frame = null;
            System.exit(0);
        }    
    }

Se voce estiver utilizando o NetBeans, vá na caixa de ferramenta do lado esquerdo e em projetos, clique com o botão direito do mouse em cima do seu projeto, em seguida em propriedades, clique em executar (Run) e verifique se a caxia de texto “Classe principal” (Main class) está apontando para sua classe cadastro, se não, aponte para ela.

Um abraço.

R

Discorpio fiz tudo o que você disse só que da erro na parte dos frames.

frame.dispose(); frame = null;

Desculpa minha nubice mais estou começando com java agora.

R

rodrigolujan:
Discorpio fiz tudo o que você disse só que da erro na parte dos frames.

frame.dispose(); frame = null;

Desculpa minha nubice mais estou começando com java agora.

Eu tirei essa parte para testar e gerei um Jar Executavel e mesmo assim deu erro na hora de encontrar a main do cadastro.

discorpio

Boa tarde Rodrigo.

Possa ser que eu esteja enganado, porém existe outra classe com o método starter “public void main (String args[])” :?: :?: :?:

Outra coisa, apesar talvez disso não ter nada haver, porém pode ser um chute no problema, mude os colchetes “[]” da classe String para a variável args, assim:

// Você escreveu assim
    public static void main (String[] args){
    ....
    }

// Escreva assim:
    public static void main (String args[]){
    ....
    }
Criado 27 de outubro de 2011
Ultima resposta 31 de out. de 2011
Respostas 6
Participantes 2