ERRO java.lang.NoSuchMethodError: main Exception in thread "main"

5 respostas
G

Olá começando no java e estou tentando fazer exercícios de Lógica de programação no java criando objetos. Só que está aparecendo essa mensagem (java.lang.NoSuchMethodError: main Exception in thread “main”). Alguem poderia me ajudar .

// 4.   Escrever um algoritmo que leia o nome de um vendedor, 
//      o seu salário fixo e o total de vendas efetuadas por ele no 
//      mês (em dinheiro). Sabendo que este vendedor ganha 15% de comissão 
//      sobre suas vendas efetuadas, informar o 
//      seu nome, o salário fixo e salário no final do mês. 

import javax.swing.JOptionPane;

public class exercicio4 {

	String nome;
	int salario;
	int vendas;
	int comissao;
	int salfinal;
	
	public void preencher() {

		salario = Integer.parseInt(JOptionPane
				.showInputDialog("Digite o salário do " + nome + " :"));
		vendas = Integer.parseInt(JOptionPane
				.showInputDialog("Digite quanto o " + nome + " vendeu: "));
	}

	public int calculo () {
			
		return comissao = (vendas/100) * 15;
		
		
	}

	public  void  main(String[] args) {
		
		

		exercicio4 p1 = new exercicio4();
		p1.nome = JOptionPane.showInputDialog(null,
				"Digite o nome do vendedor: ");
		p1.preencher();
		p1.calculo ();
		
						
		System.out.println ("O " + nome + " que tem um salário fixo de " + salario );
		System.out.println ("Ganhou um comissao de " + comissao );
		System.out.println ("Téra uma salário final de " + (comissao + salario) );
		
	 
	}
}

5 Respostas

Andre_Fonseca

oi

A assinatura do método main deve ser exatamente igual a que está abaixo

public static void main (String[] args)

abs

G

… sim … foi erro de digitação mesmo … desculpa … mas mesmo consertando essa parte, dá um erro:

  • Não é possível fazer uma referência estática para os não estáticos
    campos: salario , nome, comissão.
R

Boa noite Gustavo,

Esse erro é porque você está tentando utilizar variaveis não estáticas em um método estático, pra arrumar, basta você utilizar o objeto que você já criou p1 para usar as variáveis:

System.out.println ("O " + p1.nome + " que tem um salário fixo de " + p1.salario );  
         System.out.println ("Ganhou um comissao de " + p1.comissao );  
         System.out.println ("Téra uma salário final de " + (p1.comissao + p1.salario) );

Percebi que sua lógica para calcular a porcentagem não está certa, o certo seria:

public int calculo () {  
         return comissao = (vendas * 15) / 100;          
     }

Espero ter ajudado,

Falo !

G

Falou Rodrigo, deu certo !! obrigado !! Fiquei super feliz, pois achei que o erro era um problema bem mais complicado … pois estou começando em java agora … Mas assimilei perfeitamente meu erro e aprendi com ele . Muito obrigado e boa noite !!

R

Fico feliz em ter ajudado também,

Fica em paz :smiley:

Criado 25 de julho de 2011
Ultima resposta 25 de jul. de 2011
Respostas 5
Participantes 3