Exception in thread "main" java.lang.NoSuchMethodE

Status
Nicht offen für weitere Antworten.

NightmareVirus

Mitglied
Hallo ich wollte mir ein IntegerArray basteln... eingetlich müsste das auch klappen nur kommt da ein fehler beim starten des Programms. (compilieren tuts)

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


Programm sieht wie folgt aus:

Code:
/** This program creates a randonly-generated Integer-Array. 
 * @author Thomas Friese
 * version: 9.12.2006
 */


// is needed for generating random Integers

import java.util.Random;
public class Divide	{

	//declaration of variables
	
	int numberOfElements = 25;
	int [] array;

	//Generates a random Integer-Array 
	
	public int[] CreateArray () {
		
		
		
		/* The message "generator.nextInt();" takes no parameters, and returns the
	     * next integer in the generator's random sequence. Any Java integers, 
	 	 * positive or negative may be returned. Integers returned by this message
	 	 * are uniformly distributed over the range of Java integers.
	 	 */

		for (int i = 0; i < numberOfElements-1 ; i++)	{
			Random arrayElement = new Random();
			array[i] = arrayElement.nextInt();
			
			}
		return array;
	}


	public void main(String[] args)	{
		CreateArray();
		System.out.println(array);
	}	
}


thx 4 your help 🙂
 
ja das hatte ich mir auch gedacht aber dann kommt der fehler:

C:\Dokumente und Einstellungen\Thomas\Eigene Dateien\RWTH Aachen\Informatik\Übungen\Übungsblatt 7\Divide.java:40: non-static variable array cannot be referenced from a static context

System.out.println(array);

^
und
C:\Dokumente und Einstellungen\Thomas\Eigene Dateien\RWTH Aachen\Informatik\Übungen\Übungsblatt 7\Divide.java:39: non-static method CreateArray() cannot be referenced from a static context

CreateArray();

^



=> müsste ich ja fast alles auf static stellen... kann das richtig sein?
 
in die main:

Code:
Divide d = new Divide();
d.CreateArray();
System.out.println(d.array);

Methoden schreibt man klein, Variablen sollten privat sein und für sie sollten getter und setter Methoden verwendet werden.
 
richtig Methoden schreibt man klein 🙂

So mein Code sieht jetzt wie folgt aus

Code:
/** This program creates a randonly-generated Integer-Array.
* @author Thomas Friese
* version: 9.12.2006
*/


// is needed for generating random Integers

import java.util.Random;
public class Divide   {

   //declaration of variables
   
   static int  numberOfElements = 25;
   static int [] array;

   //Generates a random Integer-Array
   
   public static int[] createArray () {
      
      
      
      /* The message "generator.nextInt();" takes no parameters, and returns the
        * next integer in the generator's random sequence. Any Java integers,
        * positive or negative may be returned. Integers returned by this message
        * are uniformly distributed over the range of Java integers.
        */

      for (int i = 0; i < numberOfElements-1 ; i++)   {
         Random arrayElement = new Random();
         
         array[i] = arrayElement.nextInt();
         
         }
      return array;
   }


   public static void main(String[] args)   {
   	
   		Divide d = new Divide();
		d.CreateArray();
		System.out.println(d.array);
      	
   }   
}

Hab jezz also die Variablen und die Methoden static gemacht

Ansonsten kommt da nämlihc der Fehler:

C:\Dokumente und Einstellungen\Thomas\Eigene Dateien\RWTH Aachen\Informatik\Übungen\Übungsblatt 7\Divide.java:29: non-static variable numberOfElements cannot be referenced from a static context

for (int i = 0; i < numberOfElements-1 ; i++) {

^


Compilieren tuts jetzt auch wieder! Die Exception in thread "main" java.lang.NoSuchMethodError: main ist jezz auch weg stattdessen hab ich jetzt:

Exception in thread "main" java.lang.NullPointerException
at Divide.createArray(Divide.java:32)
at Divide.main(Divide.java:42)


Also irgendwo hat ein Verweis den Wert 0... Hat bestimmt was mit dem Array zu tun... was kann man da machen?


Danke schonma im Vorraus
 
Bitte nicht auf Konventionen achten ist mal eben gecoded :

Code:
import java.util.Random; 
public class h
{
  int elementAnzahl = 25; 
  int [] array=new int[elementAnzahl]; 

  public int[] CreateArray () 
  { 
   for (int i = 0; i < elementAnzahl-1 ; i++)   
   { 
    Random arrayelement = new Random(); 
    array[i] = arrayelement.nextInt(); 
   } 
  return array; 
} 
   
public void main(String[] args)
{
 System.out.println("Arrayfüllen und ausgeben"); 
 array=CreateArray(); 
 for(int x=0; x<array.length ; x++)
 {
  System.out.println("Element: "+x+" Inhalt: "+array[x]); 
 }
}  
}

Chris
 
jetzt haste ja uach das static bei der main() weggelassen... :s

ich hab noch voll kein System darin erkannt wann man static verwendet und wann net.. 😀
 
Ja, hab ich weggelassen. War ja auch nur kurz gecodet, getestet und gepostet.

Zum Thema static guck Dir mal folgendes an :

public
private
static

Findest im Netz jede Menge dazu.

Chris
 
Jo danke! Hab jezz das static trotzdem verwendet und ne schöne Ausgabe von Integerzahlen im Array bekommen!!! DANKE! jezz kann ich mich an die eingetlich Aufgabe machen und das ganze sortieren 😀... das war ja jezz nur vorgeplänkel 🙂
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben