Java Code aus String ausführen

R

rawsome

Gast
Moie,
Wie kann ich einer .jar Datei Code ausführen lassen, der in einem String steht?
Ich weiß, dass man dafür den Inhalt des Strings compilen muss.
Aber kann ich dafür einfach z.B. den Befehl
Code:
System.out.println("Hallo Welt!");
compilen und dann in einen String packen?
Wie führe ich dann sozusagen den String aus?
Geht das überhaupt?
Es sollte schon in der .jar Datei passieren und nicht mit Hilfe eines weiteren Programms.
Danke für eure Antworten!
 
Hä?!
 
Hi,

ich verstehe auch nicht was du vorhast. Kannst du das bitte nochmal erklären?

VG,
Mad
 
1. String in eine Datei schreiben.
2. Datei kompilieren.
3. Kompilierte class in jvm laden (URLClassLoader) und verwenden.
 
Ja, das geht. Java bietet hierfür eine API (javax.tools).

Der Code muss aber natürlich syntaktisch und semantisch korrekt sein. Das o.g. Beispiel würde also nicht kompilieren.
 
Liest sich so als ob Source-Code aus dem String gelesen und dann ausgeführt werden.

stackoverflow.com: Run a simple text file as Java

[TD="class: answercell"]You can use the javax.tools api form Java 6 to compile the code on the fly. However since your extension is illegal it will complain with a error: C.txt Class names are only accepted if annotation processing is explicitly requested.

To get around this (as mentioned in the comments) you must f irst load the code into a String and then execute it: [/TD]
 
Zuletzt bearbeitet: (Ergänzung)
Zurück
Oben