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



## maxpade (26. April 2007)

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*


```
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?
   }
}
```


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


----------



## jeipack (26. April 2007)

Hi

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


```
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


----------



## Develman (26. April 2007)

Ja schon so in etwa!
Da die Methode 

```
public static void main(String[] args) {}
```
ist kannst du sie einfach aus der anderen Klasse mit

```
Foo2.main(DeinStringArray);
```
aufrufen!

Also z.B.:


```
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]);
    }
}
```


----------



## maxpade (26. April 2007)

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!


----------



## Kryptaesthesie (10. März 2009)

*alle Klassen mit main() auslesen - geht das?*

Guten Morgen 


maxpade hat gesagt.:


> 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


----------



## Anime-Otaku (10. März 2009)

Du kannst mittels Reflections die existierenden Klassen auslesen, aber das ist eigentlich ein anderes Thema wie der TE vor 2 Jahren hatte.


----------

