Frage

Gibt es andere Optionen als Janino für on-the-fly und basierte Zusammenstellung Ausführung von Java-Code in v5? Ich weiß v6 den Compiler API hat, aber ich muss mit der v5 VM arbeiten.

Ich brauche im Wesentlichen um eine Zeichenfolge nehmen eine vollständige Java-Klasse enthält, kompilieren und es in den Speicher geladen werden.

War es hilfreich?

Lösung

Was Sie wollen, ist so etwas wie Janino . Wir haben es seit Jahren verwendet. Sie geben ihm (in der Nähe von Standard-Code) und es gibt Ihnen die Klassen, so dass Sie sie verwenden können. Es hat tatsächlich ziemlich viele verschiedene Modi und unterstützt den 1,5 syntaktischen Zucker und Auto-Boxen und so weiter.

Wenn Sie javac nennen, werden Sie nicht nur für alles bereit sein müssen, es tut, werden Sie dann die Klasse an der richtigen Stelle zu behandeln haben setzen oder einen zusätzlichen Klassenlader zu machen.

Janino ist sehr einfach. Es sollte genau das, was Sie suchen.

Andere Tipps

Unter Berufung auf Javac programmatisch:

http: // www.juixe.com/techknow/index.php/2006/12/12/invoke-javac-at-runtime/

   com.sun.tools.javac.Main javac = new com.sun.tools.javac.Main();  

   String[] options = new String[] 
   {  
      "-classpath", classpath, "-d", outputDir, filename  
   };

   javac.compile(options);

All App-Server tut dies für JSP immer, so offensichtlich es möglich ist. Kasse tomcat Quellcode vielleicht?

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