Newbiefrage: main Klasse ruft Klasse mit main auf, geht das?

maxpade

Mitglied
Hallo allerseits,

ich habe diesmal eine Frage in der Kategorie Anfänger:

Kann man eigenlich eine Java-Klasse ausführen und von dieser wieder eine Klasse ausführen, die ein main hat

z.b

//aufruf der kallse mit string parameter "hallo"

java foo hallo


Code:
public class foo
{
   public static void main(String args[])
 
   {
       string hallo = args[0]; //hier steht was drin
       //aufruf der zweiten klasse
       java foo2 hallo-back;  <.-----geht sowas in der art?
   }
}

Code:
public class foo2
{
   public static void main(String args[])
 
   {
       string hallo = args[0]; //hier steht jetzt "hallo-back"
      System.out.println(hallo);
   }
}
 
Hi

Nun die main ist ja der Einstiegspunkt in ein Programm. Zwei Einstiegspunkte ergeben IMHO keinen Sinn.

Java:
public class Foo  //Klassen werden gross geschrieben
{
   public static void main(String args[])
 
   {
       string hallo = args[0]; //hier steht was drin
       //aufruf der zweiten klasse
       Foo2 foo2 = new Foo2("hallo-back");
   }
}

public class Foo2 {
String arg
  Foo2(String arg) {  //Konstruktor, wird aufgerufen wenn ein Objekt dieser Klasse erzeugt wird
    this.arg = arg;  //übergebenes arg wird ins globale arg für spätere Verwendung gespeichert
    System.out.println(this.arg);
  }

}


Dies ist nun eigentlich das was du willst (so hoffe ich zumindest ^^)

Wenn es allerdings nur bei einem hallo-back bleibt, würde ich dafür nur eine weitere Funktion in der Klasse Foo erstellen und diese in der Main aufrufen.

Gruss
 
Ja schon so in etwa!
Da die Methode
Java:
public static void main(String[] args) {}
ist kannst du sie einfach aus der anderen Klasse mit
Java:
Foo2.main(DeinStringArray);
aufrufen!

Also z.B.:

Java:
public class Foo1 
{
    public static void main(String[] args)
    {
        System.out.println(args[0]);
        Foo2.main(new String[] {"Hallo-back"});
    }
}

public class Foo2 
{
    public static void main(String[] args)
    {
        System.out.println(args[0]);
    }
}
 
ja ich meinte es wie BlackMagician gepostet hat....

der sinn solch einer konstruktion ist, daß meine klassen einzeln ausführbar sein sollen und diese zur "not" von einer "zentralen-über-klasse" angestoßen werden könnten:)

cool funktioniert! danke!
 
Zuletzt bearbeitet:
alle Klassen mit main() auslesen - geht das?

Guten Morgen :)
der sinn solch einer konstruktion ist, daß meine klassen einzeln ausführbar sein sollen und diese zur "not" von einer "zentralen-über-klasse" angestoßen werden könnten

Gibt es eine Mögilchkeit alle meine Klasssen, die eine main-Funktion haben, auszulesen um bspw. eine Art Inhaltsverzeichnis zu erstellen, welche Einzelprogramme alle angestoßen werden können?

Gruß und vielen Dank!
Gerrit
 
Du kannst mittels Reflections die existierenden Klassen auslesen, aber das ist eigentlich ein anderes Thema wie der TE vor 2 Jahren hatte.
 

Neue Beiträge

Zurück