Exception in thread "main" java.lang.NoSuchMethodE

5 respostas
M

:sad:

Ae galera quando eu tento compilar o código abaixo via textpad tomo o seguinte erro :

exception in thread "main" java.lang.NoSuchMethodError: main

Alguém pode me ajudar ?

//ordereArray.java
// demonstra a classe vetor ordenado

class OrdArray {

	private long[] a; // referência ao vetor
	private int nElems; // número de itens de dados

	//----------------------------------------------------------------------------------------------------------------

	public OrdArray (int max) {   //construtor

		a = new long[max];    // cria o vetor
		nElems = 0;           // sem itens ainda
	}

	//----------------------------------------------------------------------------------------------------------------

	public int size() {
		return nElems;
	}

	//----------------------------------------------------------------------------------------------------------------

	public int find (long searchkey) {
		int lowerBound = 0;
		int upperBound = nElems - 1;
		int curIn;

		while(true) {
			curIn = (lowerBound + upperBound) / 2;
			if(a[curIn]==searchkey)
				return curIn;
			else if (lowerBound > upperBound)
				return nElems;
			     else {
			     	if (a[curIn] < searchkey)
			     		lowerBound = curIn + 1;
			     	else
			     		upperBound = curIn - 1;

			     } // fim do else divide faixa
	        } //fim do while
	} //fim de fin ()

      //----------------------------------------------------------------------------------------------------------------

      public void insert (long value) { //insere elemento no vetor

      		int j;

      		for(j=0; j< nElems; j++) //achar onde ele entra
      			if (a[j] > value) //pesquisa linear
      				break;
      		for (int k = nElems; k>j; k--) //mover maiores para cima
      			a[k]=a[k-1];
      		a[j]=value;                    //inseri-lo
      		nElems++;                      //aumentar tamanho
      	}// fim de insert

      //----------------------------------------------------------------------------------------------------------------

      public boolean delete(long value) { //remover elemento do vetor
      		int j = find(value);
      		if(j==nElems)
      			return false; 			// nao pode encontra-lo
      		else {					// o encontrou
      			for (int k =j; k<nElems; k++) //mover maiores para baixo
      				a[k]=a[k+1];
      			nElems--; 			//diminuir o tamanho
      			return true;
      		}
      } // fim do delete()

 	//----------------------------------------------------------------------------------------------------------------

	public void display() { //mostra o conteúdo do vetor

		for (int j=0; j<nElems;j++)		// para cada elemento
			System.out.print(a[j] + " "); //mostrá-lo
		System.out.println("");

	}

	//----------------------------------------------------------------------------------------------------------------

} // fim da classe OrdArray

class OrderedApp {

	public static void main(String[] args) {

		int maxSize = 100; 			//tamanho do vetor
		OrdArray arr;				// referencia do vetor
		arr = new OrdArray(maxSize); // cria o vetor

		arr.insert(77);
		arr.insert(99);
		arr.insert(44);
		arr.insert(55);
		arr.insert(22);
		arr.insert(88);
		arr.insert(11);
		arr.insert(00);
		arr.insert(66);
		arr.insert(33);

		int searchkey = 55;		//pesquisa item

		if (arr.find(searchkey)!=arr.size())
			System.out.println("Found " + searchkey);
		else
			System.out.println("Can´t find " + searchkey);

		arr.display();

		arr.delete(00);
		arr.delete(55);
		arr.delete(99);

		arr.display();

	} //fim da classe main

} //fim da classe OrderedApp

[color="red"]*Editado: tópico movido para o fórum Java Básico (Iniciantes) e lembre-se de usar BBCode nas suas mensagens no fórum: Jair Elton[/color]

5 Respostas

J

Sua classe não tem um metodo main, por isso o erro, declare ele assim:

public static void main(String[] args){ //codigo }

BrunoBastosPJ

pior que tem sim… o problema eu acho que é porque suas classes estão com acesso padrão… Tá dando um erro aqui tambem, mas quando mudo para public a classe OrderedApp ele funciona

P

na verdade o compilador esta gerando esse erro, pq ele não encontra o metodo main, pois ele deve estar numa classe public, lembrando q se vc estiver declarando varias classes num mesmo arquivo. java, apenas uma delas deve ser public…

espero ter ajudado…

flw

J

É verdade que tem! :oops:

Verifique se a classe OrderedApp está declarada separadamente em um arquivo chamado OrderedApp.java

Para executar faça:

java OrderedApp

P

na verdade pode todo mundo estar no mesmo arquivo…soh q a classe q leva o nome do arquivo deve ser publica e nela eh q deve estar o metodo main…

Criado 7 de março de 2007
Ultima resposta 7 de mar. de 2007
Respostas 5
Participantes 4