programm soll sich selbst ändern können

Status
Nicht offen für weitere Antworten.

ARadauer

Top Contributor
es es möclich dass sich ein java programm selbst umschreibt.

so mein gedanke:
ich speicher eine klasse meines programms in eine jar datei
ich lösch ihm in eclipse die klasse raus und füg die jar datei ein, nun sollte er sich die klasse aus der jar datei
jetzt kann ich die java datein wieder rein geben
das programm kann die java datei verändern, builden, in die jar datei packen
beim nächsten start, hat scih das programm verändert.

sinn oder unsinn?


ich könnte die java datei grundsätzlich auch ganz wo anders liegen haben, aber ich habe immer probleme mit den packages.
bis jetzt hatte ich es so, dass die java datei von einem anderen programm verändert wurde und auch gebildet wurde, nur in diesem anderen programm, waren natürlich nicht alle klassen die die zu verändernde klasse benötigt nicht vorhanden und somit hat er mit einige methoden nicht compiliert.

was haltet ihr von diesem ansatz? wo könnte es probleme geben oder wie würdet ihr sowas machen?



ps: ist es gefährlich programme zu schreiben die sich ändern können? :cool: matrix, terminator, gibt ja genug beispiele
 

AlArenal

Top Contributor
Gegenfrage: Welchem konkreten Zweck soll dieses Verhalten in deinem Programm dienen?

P.S.:
Sich selbst verändernder Code ändert sich zur Laufzeit und arbeitet nicht notwendigerweise mit Hackentricks wie der Ablage als ausführbare Datei.
 

FenchelT

Bekanntes Mitglied
Hallo,

mir, als Java-Laie erschliesst sich der Sinn und Zweck nicht ganz.
Wofuer brauchst Du das im praktischen Einsatz?

Welcher Anwendungsfall erfordert es, dass ein Programm eine KLasse eines anderen / des gleichen Programmes umschreibt?

Welchen Nutzen hat das?


Viele Gruesse
FenchelT
 

ARadauer

Top Contributor
eine java datei builden, also java -> class
wie mach ich das am besten ohne eclipse, optimal für meinen zweck aus einem java programm heraus?

über Runtime.getRuntime().exec(), javac aufrufen,
jedoch was mache ich wenn keine jdk installiert ist?

btw: warum kann eclipse eigentlich compilieren, auch wenn keine jdk installiert ist? hat es einen eigenen compiler dabei?
 

ARadauer

Top Contributor
der sinn und zweck ist sehr komplex,
aber grundsätzlich: der anwender hat die möglichkeit die kompletten berechnungen, datenfelder, datenbank zugriffe über eine excel datei zu konfigureren. ein wartungstool erstellt dann aufgrund dieser excel daeti eine kern berechnungsklasse in der die zugriffe und berechnungen verwaltet werden.

funktioniert auch alles schön und gut, nur ich kopier halt händisch dateien hin und her und starte immer alles aus eclipse. ich will aber das es ohne eclipse und manuelles kopieren funktioniert.
 

André Uhres

Top Contributor
Ich hab sowas noch nie gemacht und seh auch keinen Sinn darin.
Es widerspricht total der Definition von Programm: ein im Voraus festgesetzter Ablauf.
Natürlich macht man auch Programmänderungen. Aber die sollten wohl kaum dem Programm selbst überlassen werden :wink:
Das wäre in der Tat gefährlich!
 

Rock Lobster

Bekanntes Mitglied
optimal für meinen zweck

Solang Du Deinen Zweck hier nicht erklärst, wird wohl keine Sau blicken, was Du vorhast, und es wird Dir folglich auch keiner helfen können.

Das ist wie wenn ich frage "kann man Geräte bauen, die an ihren eigenen Schrauben das Gewinde abschleifen", das dürfte jedem erstmal total unsinnig erscheinen, und es wird mir erst einer helfen, wenn ich auch erkläre, WARUM ich das überhaupt will. Oftmals gibt's dann ein klares "Ja", ein klares "Nein", oder zumindest einen guten Alternativ-Vorschlag, der dem Zweck sogar noch viel besser dient.


EDIT: Okay, jetzt hast Du es ja doch erklärt. Also im Grunde gibt es Code-Generatoren, z.B. Hibernate, das erstellt Dir passende Klassen für entsprechende Datenbank-Objekte. Das wird allerdings nicht zur Laufzeit gemacht. Grundsätzlich ist es jedoch möglich, dann mußt Du aber einen Classloader benutzen und evtl. sogar den Compiler direkt aus dem Programm raus aufrufen. Du kannst Dir aber auch BeanShell anschauen, das ist eine Möglichkeit, um Skripte in Form von Java-Code einzubauen. Das heißt, Du kannst Dir dort Code generieren, der direkt ausgeführt wird ohne daß Du ihn von Hand compilieren mußt.
 

ms

Top Contributor
Ich glaube hier liegt ein Verständnisproblem vor.

Wenn du als Ergebnis dieser "Anwender-in-Excel-eingabe-daraus-Javaklasse-generierung" eh schon eine Javaklasse erhältst, dann einfach ein Buildscript mit z.B. Ant schreiben welches kompiliert und die Applikation neu buildet.

ms
 

Wildcard

Top Contributor
Davon abgesehen das sich selbst modifzierender Code schon vor Jahren auf Eis gelegt wurde, ist der Compiler über die API erreichbar.
 
B

Beni

Gast
Oder benutz eine Scriptengine um deine Berechnungen zu machen. z.B. ist in Java 1.6 JavaScript schon eingebaut (andere Sprachen lassen sich im Netz finden).
 

AlArenal

Top Contributor
Warum generiert das Tool Java-Code, der dann erst eingebacken werden muss? Tuts nicht auch das Schreiben der Daten in eine Konfigurationsdatei?

Ich glaube ehrlich gesagt nicht, dass jenes Tool selbst großartig funktionellen Code erzeugt, sondern baut einfach aus ner Vorlage was zusammen und ersetzt vorgegeben Felder mit den aus dem Excel-Sheet eingelesenen Werten. Sollte ich falsch liegen, müsste das ein raffetückisches Ding sein und ich würde mal über dein Einsatz einer Script-Engine oder Jikes nachdenken...
 

ARadauer

Top Contributor
danke für eure beiträge:

also property datei bzw die excel datei als property datei zu verwenden und alles zur laufzeit machen, zu dem ist das vorgehen zu komplex. hab ich schon versucht.

scripting engine, ja guter einwand, habt ihr recht, wär vielleicht besser, aber jetzt funktioniert mein programm schon und ich muss bald fertig werden.

Compiler über die API erreichbar.
ahh das ist interessant! das bringt mich der lösung ein ganzes stück weiter...
 

Yzebär

Bekanntes Mitglied
ARadauer hat gesagt.:
danke für eure beiträge:

also property datei bzw die excel datei als property datei zu verwenden und alles zur laufzeit machen, zu dem ist das vorgehen zu komplex. hab ich schon versucht.

Aber nicht komplex genug, um eine Klasse umzuschreiben oder was? Sorry, aber mögen dir die Anwender deine Frickelei um die Ohren hauen, damit du aus der Sache was lernst und nicht noch einmal solchen Unsinn verzapfst...
 

Saxony

Top Contributor
Wildcard hat gesagt.:
Davon abgesehen das sich selbst modifzierender Code schon vor Jahren auf Eis gelegt wurde, ist der Compiler über die API erreichbar.

Wie meinst du das?

In den neueren Java SDKs wurde ja sun.tools.jar.Main entfernt, da man davon den Quellcode nicht mit offen legen wollte.

Somit kann ich auch nicht Main#compile() mehr verwenden.

Wie kann man aber trotzdem noch weiterhin zur Laufzeit kompilieren ?

bye Saxony
 

Saxony

Top Contributor
Hiho,

das mit der verlorenen Plattformunabhängigkeit ist dann natürlich Mist.

bye Saxony
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Programm soll sich nach update neustarten Allgemeine Java-Themen 30
O 2D-Grafik BioFarben-Programm soll auf Vollbild schalten Allgemeine Java-Themen 1
R Programm soll warten bis eine Passwort eingabe gemacht wurde. Allgemeine Java-Themen 6
B Programm soll auf die Eingabe vom Mouselistener warten. Allgemeine Java-Themen 19
E Java-Programm soll Java-Programm "fernsteuern" -wi Allgemeine Java-Themen 3
S Java Programm soll im Hintergrund laufen (vgl. fork() bei C) Allgemeine Java-Themen 10
Jose05 Umgang mit Exceptions in einen Programm Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
R Programm führt Methoden gleichzeitig aus Allgemeine Java-Themen 2
T Der Aufruf von CMD-Programm Allgemeine Java-Themen 30
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
Mike80 Processing Programm fiert ohne Arduino ein Allgemeine Java-Themen 2
B Mysteriöse Ergebnisse beim Baccarat Programm? Allgemeine Java-Themen 13
districon Programm zum Durchsuchen von (Ebay-)Artikeln Allgemeine Java-Themen 1
T Addons im eigenen Programm Allgemeine Java-Themen 1
Calli11 Was muss ich hier in die Main schreiben, damit das Programm ausgeführt wird? Allgemeine Java-Themen 4
S .exe Datei/Programm auslesen? Allgemeine Java-Themen 2
S Formel für Sonnenwinkel in ein Programm überführen Allgemeine Java-Themen 11
Alex_99 Programm stürzt beim Aufruf der Funktion ab? Text ausgeben Allgemeine Java-Themen 45
B Java Programm auf virutellem Desktop laufen lassen? Allgemeine Java-Themen 1
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
Tiago1234 Warum hängt sich mein Programm auf? Allgemeine Java-Themen 22
D Programm designen Allgemeine Java-Themen 1
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
S Nachrichten Filter Programm Allgemeine Java-Themen 14
S Programm schreiben, das mir aufgrund von Schlagwörtern, die ich im Internet suche, relevante Themen sofort anzeigt. Allgemeine Java-Themen 1
T Hilfe bei Programm. IDE: Eclipse mit EV3-Plugin, lejos Allgemeine Java-Themen 8
Lukas2904 Swing Anzeigen lassen das das Programm geschlossen wurde Allgemeine Java-Themen 3
TechnikTVcode Mail Programm Allgemeine Java-Themen 2
S Programm entwickeln, welches ein Dreieckspuzzle lösen kann Allgemeine Java-Themen 5
R Lesen von Interfaces (Programm Vervollständigen) Allgemeine Java-Themen 10
Dann07 Java-Programm findet DLLs nicht! Allgemeine Java-Themen 20
OSchriever Linux-Programm öffnen Allgemeine Java-Themen 6
P USER Management in SQL übergreifend auf JAVA Programm Allgemeine Java-Themen 41
L Eclipse Konsole im exportierten Programm Allgemeine Java-Themen 2
OSchriever Programm über Linux-Kommandozeile ausführen Allgemeine Java-Themen 20
D Verkauf von einem Programm welches ich in Java geschrieben habe Allgemeine Java-Themen 4
M Programm erkennt String aus .txt Datei nicht Allgemeine Java-Themen 3
P Erstelltes Programm ist doppelt so groß Allgemeine Java-Themen 11
N Programm nach Abschluss neustarten lassen Allgemeine Java-Themen 6
S Einfaches Programm programmieren Allgemeine Java-Themen 5
M kleines KI Programm Idee Allgemeine Java-Themen 7
D Boolean von ein anderem Java Programm während der Laufzeit ändern Allgemeine Java-Themen 23
L Excel Datei löscht sich selbst im Programm - Java Allgemeine Java-Themen 3
I File ausführen und mein Programm bearbeiten lassen Allgemeine Java-Themen 11
ralfb1105 Starten Java App(s) (.jar) aus einem Java Programm Allgemeine Java-Themen 18
temi Java Programm aus einer DB laden und starten Allgemeine Java-Themen 2
N Programm startet nicht, nur per cmd Allgemeine Java-Themen 5
J Programm zum Suchen eines Wortes im Dateisystem Allgemeine Java-Themen 4
E Java Programm mit Clients erweitern - Möglichkeiten? Allgemeine Java-Themen 2
Joker4632 Methoden Befehl an bereits extern geöffnete Programm-spezifische Konsole senden Allgemeine Java-Themen 1
M Dieses Programm schneller machen? Allgemeine Java-Themen 2
R Programm zur Rekursion Allgemeine Java-Themen 5
N Quicksort Programm hängt sich auf Allgemeine Java-Themen 6
S Compiler-Fehler Programm verhält sich in Eclipse anders Allgemeine Java-Themen 1
B Input/Output Programm zum Auslesen/Beschreiben von Textdateien, wie Geschwindigkeit erhöhen? Allgemeine Java-Themen 18
dereki2000 Programm veröffentlichen Allgemeine Java-Themen 14
mrbig2017 Threads Chat Programm mit Threads? Allgemeine Java-Themen 2
M Suche aktuelle Apache Poi Bibliothek zum Einbinden in mein Programm Allgemeine Java-Themen 2
J Java "Bank Programm" Brauche eure Hilfe Allgemeine Java-Themen 3
S Java Programm (Spiel mit den Boxen) Allgemeine Java-Themen 1
kodela Programm hängt in der Ereigniswarteschlange Allgemeine Java-Themen 13
A Java Programm verbessern/vereinfachen Allgemeine Java-Themen 20
P Programm darf nicht mehrfach startbar sein Allgemeine Java-Themen 16
S Programm hängt sich manchmal (selten) auf Allgemeine Java-Themen 9
JavaNewbie2.0 Programm nicht im Taskmanager schliesen können Allgemeine Java-Themen 15
J XML Datei mit installiertem Programm öffnen Allgemeine Java-Themen 7
Arif Input/Output Dateien im Jar-Programm speichern Allgemeine Java-Themen 12
H Java FX 2 Fragen um Programm in mehrere sprachen zu übersetzen in Gluon Framwork Allgemeine Java-Themen 3
JavaNewbie2.0 Programm bleibt "stehen" Allgemeine Java-Themen 2
JavaNewbie2.0 Start eines Anderen Programm erkennen Allgemeine Java-Themen 6
E Mit Java ein Python Programm starten Allgemeine Java-Themen 20
Q-bert Daten von Java Programm speichern Allgemeine Java-Themen 4
Aruetiise Methoden .jar mit Programm öffnen Allgemeine Java-Themen 2
C anderes Programm schließen! Allgemeine Java-Themen 5
C Webseiten Programm problem Allgemeine Java-Themen 5
E Programm auf Installation prüfen Allgemeine Java-Themen 1
J Programm zum Download von CSV-Dateien Allgemeine Java-Themen 4
E Programm ohne Windowsrand(Vollbild) ? Allgemeine Java-Themen 5
G Programm, das nach abgearbeiteter main Methode weiterläuft Allgemeine Java-Themen 72
P Schnittstelle java Programm zu Webserver / Browser Allgemeine Java-Themen 2
J Schutz Programm Jar Exe Allgemeine Java-Themen 7
R javax.comm --> Programm funktioniert nach Export nicht mehr Allgemeine Java-Themen 0
Blender3D Java Swing Programm Windows 10 Autostart Problem Allgemeine Java-Themen 2
U Input/Output Warum wirft mir das Programm diesen Fehler? Allgemeine Java-Themen 6
X jvm exception abfangen und an externes Programm schicken Allgemeine Java-Themen 4
B Programm updaten mit FXLauncher Allgemeine Java-Themen 1
D Nicht quelloffenes Programm Allgemeine Java-Themen 5
F Java-Programm lizensieren Allgemeine Java-Themen 21
I Programm im Hintergrund bei Windows zur Steuerung der Tastatur nutzen Allgemeine Java-Themen 2
X Aus Programm "Installationsprogramm" machen Allgemeine Java-Themen 6
T Java Programm in Internetseite? Allgemeine Java-Themen 4
T Java Programm frisst RAM Allgemeine Java-Themen 6
H Alter Java-Programm läuft nicht mehr. Laut strace fehlt libpthread.so.0 Allgemeine Java-Themen 3
H Runtime reagiert erst wenn Programm abbricht Allgemeine Java-Themen 1
E Exceptions abfangen und dann Programm stoppen - aber wie? Allgemeine Java-Themen 2
Neumi5694 Offenes Programm nutzen Allgemeine Java-Themen 4
L Java-Programm Zahlenkombinationen ausgeben Allgemeine Java-Themen 10

Ähnliche Java Themen

Neue Themen


Oben