Kompilieren Sie den Code vollständig im Speicher mit javax.tools.JavaCompiler [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Wie lassen sich externe Java-Klassen dynamisch kompilieren und laden? [Duplikat] 2 AntwortenIch verwende den JavaCompiler aus dem Paket javax.tools (JDK 1.7), um einige Dinge im laufenden Betrieb zu kompilieren:
compiler.run(null, null, "-cp", paths, "path/to/my/file.java");
Es funktioniert, aber ich möchte alles im Speicher tun (z. B. eine Zeichenfolge mit dem Code, nicht der Quelldatei, übergeben und den Bytecode zurückerhalten, nicht eine .class-Datei). Ich fand die Erweiterung derInputStream
undOutputStream
parameter nützen nichts, da sie wahrscheinlich genauso sind wie in der konsole. Kennen Sie eine Methode, mit der die run-Methode so funktioniert? Oder kennen Sie einen bestätigten Weg, dies mit dem zu tun?getTask()
Methode? (Erweiterung des FileManager sieht einfach aus, ist aber nicht so einfach :)