Klassen Main-Routine in Packages?

ChrisianM

Mitglied
Hallo zusammen!

Ich bin absoluter Anfänger in Java, habe es aber immerhin schon hinbekommen, zwei Klassen in Eclipse zu definieren, die an sich fehlerlos laufen. Jede dieser Klassen (Klasse1 und Klasse2) enthält eine eigene Main-Routine (sagt man das so in Java?).

Jetzt habe ich mir zu Übungszwecken gedacht, dass ich die Main-Routine aus beiden Klassen rausnehme und eine eigene Main-Klasse baue, damit ich einfach wählen kann, welche Klasse mit New angesprochen wird.

Dann habe ich folgende Klasse gebildet:

Java:
package Klassentest;

public class main() {
	public static void main (String[] args) {
		new Klasse2();
	}
}

Eclipse meldet mir hier zur Zeile
Code:
public class main() {
folgendes:
Multiple markers at this line
- Syntax error on token "class", @
expected
- Syntax error, insert "}" to
complete Block

Zur nächsten Zeile kommt diese Meldung:
Multiple markers at this line
- Syntax error on token "void", @ expected
- Syntax error on token "]", invalid (
- Syntax error, insert "]" to complete ArrayAccess
- This method has a constructor name
- Syntax error, insert "enum Identifier" to complete
EnumHeader
- Syntax error, insert ")" to complete
SingleMemberAnnotation

Und zur letzten } heißt es:
Syntax error on token "}", delete this token
(wenn ich das aber mache, entstehen andere Fehler, die ich erst recht nicht verstehe)

Kann mir jemand helfen? Oder ist es nicht zulässig, eine einzelne Main-Klasse zu haben, die verschiedene Klassen aufruft? Liegt es evtl. am Package?

Vielen Dank für eure Hilfe!

AnfängerHoch10
 
Hallo,

Vielleicht wäre es hilfreich wenn du den restlichen code noch postest.

Beim code hat es noch Kleinigkeiten.
Java:
package Klassentest; 
 
public class main() { // hier die Klammer () entfernen
    public static void main (String[] args) {
        new Klasse2(); // mit " Klasse2 = new Klasse2(); " anweisen.
    }
}

Gruss
H.
 
Zuletzt bearbeitet von einem Moderator:
Ich habe den obigen Code gerade mit javac "per Hand" kompiliert, und dabei kam folgende Fehlermeldung:

Code:
main.java:3 '{' expected
public class main()
                 ^
1 error
Und das sagt ja auch ganz gut was hier falsch ist: Die runden Klammern bei der Klassendefinition. In runde Klammern würde man in aller Regel Parameter hineinschreiben. Aber an dieser Stelle sind von Java keine Parameter vorgesehen. Daher gehören da auch keine Klammern hin.
Ist manchmal vielleicht doch ganz nützlich wenn man sein Handwerk noch von der Pike auf lernt und mal auf die IDE verzichtet. ;-)
 
Hallo zusammen!

Vielen Dank für eure Hilfe! Ich hatte voll das Brett vorm Kopf!
Hab die Klammern weggemacht, die Routine umbenannt (wusst ich gar nicht, dass es auch ohne main geht) und alles läuft wie es soll.

Ja, ich gebs zu, das mit Eclipse ist nicht leicht. Aber alle Bücher (ich habe 3 Stück) schreiben, es wäre schlechter Programmierstil, wenn man alles in eine .java-Datei reinpackt und empfehlen, Packages zu machen. Nur über das Wie lassen sie sich nicht aus. Die Programme haben ja über den klassischen Weg funktioniert. Was ich jetzt mache, ist experimentieren, um spielerisch in Java reinzukommen.

AnfängerHoch10
 
Ja, ich gebs zu, das mit Eclipse ist nicht leicht. Aber alle Bücher (ich habe 3 Stück) schreiben, es wäre schlechter Programmierstil, wenn man alles in eine .java-Datei reinpackt und empfehlen, Packages zu machen. Nur über das Wie lassen sie sich nicht aus.
Auch wenns jetzt vielleicht vollkommen überraschend, abwegig und unintuitiv erscheinen mag:

rechte Maustaste auf das Projekt -> New -> Package

Sowas wäre in der Tat mal ein eigenes Buchkapitel wert ;-)

Was ich jetzt mache, ist experimentieren, um spielerisch in Java reinzukommen.
Experimentieren ist wichtig, setzt aber trotzdem das gleichzeitige Erlernen der Grundlagen voraus. Und dazu gehört nunmal die Syntax, Benennungskonventionen und dass ein Programm in der Regel nicht 100 Einstiegspunkte, sondern einen hat.
 

Zurück
Oben