Erro na criação de JAR!

3 respostas
J

Segui os passos que eu vi aqui no forum para criar um JAR mas, quando executo ele ta dando esse erro:

’ Failed to load Main-Class manifest attibute from c:\teste2\testando.jar "

O codigo usado

package pacoteJar;

public class Principal {

public static void main(String[] args)

{

new dados();	

}

}

package pacoteJar;

import java.awt.BorderLayout;

import java.awt.Container;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

public class dados extends JFrame {

JLabel l1		= new JLabel(Nome:);

JLabel l2		= new JLabel(CPF:);

JLabel l3		= new JLabel(Endereço:);

JLabel l4		= new JLabel(Sexo <H OU M>:);

JLabel l5		= new JLabel(Idade:);

JTextField t1     	= new JTextField (20);	JTextField t2     	= new JTextField (20); 	JTextField t3     	= new JTextField (20); 	JTextField t4     	= new JTextField (20); 	JTextField t5     	= new JTextField (3);

JButton bMostrar	= new JButton(Mostrar);

JButton bSair		= new JButton(Sair);

JButton bAtualizar  = new JButton(Atualizar);

JButton bNomeR      = new JButton(Nome Reduzido);

JButton bValidaCPF  = new JButton(Valida CPF);

JButton bMensagem   = new JButton(Mensagem);
public dados() {
	Container c = getContentPane();
	setSize(450,520);               		c.setLayout(new BorderLayout()); 
	Container norte = new Container();
	norte.setLayout(new GridLayout(6,2)); 
	norte.add(l1);             
	norte.add(t1);   
	norte.add(l2);  
	norte.add(t2);  
	norte.add(l3);             
	norte.add(t3);   
	norte.add(l4);  
	norte.add(t4);
	norte.add(l5);  
	norte.add(t5);

	Container centro = new Container();
	centro.setLayout(new GridLayout(1,1));
	

	Container sul = new Container();
	sul.setLayout(new GridLayout(6,2));
	sul.add(bMostrar);
	sul.add(bAtualizar);
	sul.add(bNomeR);
	sul.add(bValidaCPF);
	sul.add(bMensagem);
	sul.add(bSair);
	
	c.add("North",norte);
	c.add("Center",centro);
	c.add("South",sul);
	show();
	bSair.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent evt){
					System.exit(0);
			}
			});
}

}

Criei a pasta c:\teste2
criei o arquivo manifest.mf e coloquei ==> Main-Class: pacoteJar.Principal
criei a pasta c:\teste2\pacoteJar e adicionei os arquivos dados.class e principal.class.

depois na pasta c:\teste2 digitei ==> jar cfvm testando.jar manifest.mf pacoteJar/*.class.

Ele criou o arquivo testando.jar, mas quando clico no arquivo ta dando o erro que eu mencionei acima.

’ Failed to load Main-Class manifest attibute from c:\teste2\testando.jar "

Alguem pode me ajudar? Eu peguei outro exemplo parecido com esse e deu tudo certo!

Outra coisa, porque que quando crio um arquivo JAR usando o eclipse da o mesmo erro?!!!

3 Respostas

J

Kra… o erro está no manifest.mf, você deve deixar a última linha em branco, é só pular uma linha após:

Main-Class: pacoteJar.Principal

Flw…

J

Valeu, com essa dica deu certo.

Mas to com uma dúvida em outro programa.

package Aula6;

import javax.swing.*;
public class ValidaCPF {

public static void verificaCpf(String cpf)
{
int num[]=new int[11];int j=0,somaP=0,somaU=0,cont=10,modP=0,modU=0,valido=0; 

for(int i=0;i&lt;=10;i++) //passando os numeros da String p/ um vetor.
{ 
 num[i]=Integer.parseInt(cpf.substring(i,i+1)); 
}
/////////////////////////////////////1º DIGITO VERIFICADOR ///////////////////////////////

for(int i=0;i<=8;i++)

{somaP+=(num[i]*cont);cont;}

modP=somaP%11;

if(modP<=1)

{   modP=0;

if(modP==num[9])

valido++;

}

if(modP>1)

{   modP=11-modP;

if(modP==num[9])

valido++;

}

/////////////////////////////////////2º DIGITO VERIFICADOR ///////////////////////////////	

cont=11;

for(int i=0;i<=8;i++)

{somaU+=(num[i]<em>cont);cont;}

modU=(somaU+2</em>modP)%11;
if(modU&lt;=1)
{   modU=0;
	if(modU==num[10])
	 valido++; 
}
if(modU&gt;1)
{   modU=11-modU;
	if(modU==num[10])
	valido++;
}
if(valido==2)
JOptionPane.showMessageDialog(null,"CPF VALIDO!!!","RESULTADO",JOptionPane.INFORMATION_MESSAGE);
 else JOptionPane.showMessageDialog(null,"\t\t"+"CPF INVALIDO!"+"\n\n1º Digito Verificador =&gt; " +
 +modP+"\n2º Digito Verificador =&gt; "+modU+"\t"+"\n\nCPF CORRETO =&gt; "+cpf.substring(0,9)+" - "+modP+modU,
 "RESULTADO",JOptionPane.INFORMATION_MESSAGE);
}

/////////////////////////////////////PROGRAMA PRINCIPAL //////////////////////////////////

public static void main(String[] args) 
{
String cpf; 
cpf=JOptionPane.showInputDialog(null,"Digite o número do CPF &lt;sem ponto ou traço&gt;",
"ENTRADA DE DADOS",JOptionPane.QUESTION_MESSAGE);
if(cpf.length()!=11)
  {JOptionPane.showMessageDialog(null,"CPF Tem que ter 11 digitos!!","ERRO!!"
  ,JOptionPane.ERROR_MESSAGE);
  System.exit(0);
  }
verificaCpf(cpf);
}

}

Fiz igual o outro manifest.mf ==> Main-Class: pacoteJar.ValidaCPF

So que ta dando erro !!

’ Could not find the main class. Program will exit "

Pode me ajudar!!

J

A classe ValidaCPF está no pacote Aula6, não no pacote pacoteJar como descrito no manifest.mf…

Flw…

Criado 13 de março de 2005
Ultima resposta 13 de mar. de 2005
Respostas 3
Participantes 2