merkwürdige Compiler-Probleme

hans_schmid

Erfahrenes Mitglied
Schiff ahoi :) ,

ich habe gestern angefangen, mich intensiv mit Java zu beschäftigen. Das funktioniert auch eigentlich ganz gut, ich habe nur ein merkwürdigs Problem mit meinem Compiler.

Mein Code sieht folgendermaßen aus:
PHP:
import java.lang.Math;
import java.util.Random;


class ziehen {
	
	public int zahl;
	public boolean gleich;
	public int[] ziehung = new int[6];
	
	public Random zufall = new Random();
	
	public ziehen(int anzahl){
		this();
		for (int i = 0; i <= anzahl; i++){
			zahl = zufall.nextInt(49);
			if (i>0){
			for (int y = 0; y < i; y++){
				if (ziehung[y] != zahl){
					gleich = false;
				} else {
					gleich = true;
				}
			}
			}
			if (gleich != true){
				ziehung[i] = zahl;
			} else {
				i--;
			}
		}
	}
	
	public long idNum;

	private static long nextID = 0;
	
	ziehen() {
		idNum = nextID++;
	}
}

class test{
	public static void main(String[] args){
		ziehen neu = new ziehen(5);

		for (int i = 0; i <= 5; i++){
			System.out.print(neu.ziehung[i] + " ");
		}
	}
}
Bitte nicht über den Code lästern... Ich bin wie gesgt erst blutiger Anfänger ;-)

Das Problem ist jetzt folgendes:
Der Code ansich funktioniert einwandfrei. Wenn ich jetzt aber in ziehen{} etwas verändere, bekomme ich beim Ausführen den Fehler: java.lang.NoSuchMethodError: main
Um den Fehler zu beheben, muss ich in main{} irgendetwas ändern und wieder rückgängig machen. Ich muss also, nachdem ich in ziehen{} etwas verändert habe, in main{} z.B. ein Leerzeichen einfügen und wieder löschen, bevor ich den Compiler starte. Wenn ich das mache, wird der Code problemlos ausgeführt. Wenn ich in main{} nichts verändere, erhalte ich beim Ausführen des Codes den oben genannten Fehler.

Ich verwende J2SDK 1.4.2 und den JCreator unter Windows XP.
Hat von euch jemand ne Idee, woran das liegen könnte?

MfG
Hans
 
2 Klassen in ein File abzulegen. Sollte mann nicht tun.

Denn ich geh davon aus das das Sourcefile bei dir ebenso ziehen.java
heisst.
Der Compiler verfährt so das er die Klasse test anders instanziert, als dies
normal passiert.

Drum, ausser du nimmst innere Klassen / anonyme Klassen, immer jede Klasse
in ihre eigen .java Datei.
Zudem jede Klasse mit startendem Grossen buchstaben benennen, das ist Konvention.
 

Neue Beiträge

Zurück