Frage

Ich bin über ein kleines Java-Desktop-App zu entwickeln beginnen. Die App ist nur ein Motor für die der Benutzer Java-Klassen bietet die Arbeit zu tun (Eingang zum Ausgang zu übersetzen).

Ich würde die Benutzer wie aktuelle Java-Klassen als Dateien zur Verfügung zu stellen, die (und neu geladen) on the fly geladen werden können.

Für diese spezielle Anwendung, gibt es keinen Grund, warum Java umständlicher als Groovy oder Beanshell wäre? Ich frage nicht für einen Vergleich von Groovy / Beanshell und Java, wie es viele gibt. Vielmehr möchte ich wissen, ob es einfacher ist, dynamisch Groovy oder Beanshell Klassen von Dateien zu laden im Vergleich zu Java.

Für Java 1.6 ist der JavaCompiler der beste Weg, um dynamisch Last-Code? Ich möchte alle Sprachfunktionen verwenden, so dass ich denke Janino ist aus. Auch Probleme mit Nachladen?

Hinweis: Ich habe gesehen, diese und diese , aber ich sie meine Frage nicht sicher beantworten.

War es hilfreich?

Lösung

JavaCompiler ist sehr vielseitig, aber es bringt eine kleinere, mögliche Konfigurationsproblem: In javax.tools , ToolProvider.getSystemJavaCompiler () identifiziert die Klasse des Compilers als com.sun.tools.javac.api.JavacTool. Auf einigen Plattformen ist diese Klasse nicht Teil der JRE; ein JDK scheint erforderlich zu sein. Hier ist ein Beispiel .

Sehen Sie sich auch javax.script , diskutiert hier . Mehrere Scripting Engines unterstützt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top