Theoretische Frage - In Java Java-Programme schreiben

Airwolf89

Aktives Mitglied
Hallo Leute,

bin mal wieder ein wenig am nachdenken. Ist wie gesagt nur auf theoretischer Basis. 😉

Wie würde man es anstellen, wenn man vorhätte mittels Java-Code ein Java-Programm zu erzeugen. Ich rede nicht nur von Kompilierung aus Java heraus, sondern wirklich die Erstellung von Java-Klassen, mit Feldern, Methoden und allem was dazu gehört aus Java heraus.

Ich sage mal, ein ganz pragmatischer Ansatz wäre ja eine .java Datei zu erzeugen, dort, wie in einem Textfile, den eigenen Code reinzuschreiben und das ganze danach durch den Compiler zu jagen und anschließend das Programm auszuführen. (Wäre ja theoretisch möglich, oder?)
Allerdings glaube ich nicht dass das noch einigermaßen performant wäre.

Wie würde man sowas angehen? Hat jemand von euch sowas schonmal gemacht? Bzw. geht sowas überhaupt? Habe versucht im Netz dazu mal was zu finden, allerdings hab ich nicht wirklich was gefunden.
Sinn und Unsinn oder Anwendungsfälle des ganzen mal außer Acht gelassen, habe halt schon ab und an solche Schlagworte wie "Programme die Programme schreiben" gehört. Würde mich mal interessieren.

Danke im voraus.
 
Dachtest du dabei an ein bestimmtes Programm, das erzeugt werden soll? "Programme die Programme schreiben" sind eigentlich nichts ungewöhnliches. Solange man dem Programm, welches ein Programm erzeugen soll, eine Spezifikation des zu erzeugenden Programms übergibt sollte es dabei auch keine Probleme geben, die nicht schon längst bekannt und behandelt wurden. Ein Programm aufgrund einer Beschreibung (in welcher Form auch immer) zu erzeugen, sowas macht doch jeder GUI-Builder. Oder Compiler. Oder Hibernate & Konsorten.
Ob es performant ist - naja, an und für sich kann das sogar sehr performant sein, wenn die Klasse keine eierlegende Wollmilchsau sein muss sondern jeweils auf deinen konkreten Anwendungsfall automatisch maßgeschneidert wird.
An was für Programme dachtest du denn?
 
Ich würde generell zu ASM raten, die API ist etwas hübscher. Für Anfänger empfiehlt sich allerdings eher sogar noch Javassist.
 

Zurück
Oben