2 Stimmen

Den Java-Compiler in einem Applet oder in Google AppEngine hosten?

Beim Durchforsten des Webs habe ich herausgefunden, dass der Javac-Compiler in Java geschrieben ist, und ich habe auch einen Blick auf den Quellcode auf der Sun-Website geworfen. Der Quellcode ist ziemlich umfangreich und ich konnte keinen Fortschritt darin machen. Auch das Eclipse-Projekt hat einen Compiler eingebettet, aber wer könnte seinen Quellcode überhaupt berühren ;-).

Also dachte ich, ich würde ein paar Fragen in deine Richtung werfen:

  1. Könnte der Java-Compiler in einem Applet gehostet werden?
  2. Könnte der Java-Compiler so angepasst werden, dass er auf GAE funktioniert, mit dynamischem Laden der resultierenden Klassen aus dem Datenspeicher?

0 Stimmen

GAE hat einen spezifischen Controller, da es nur einige Klassen zulässt: code.google.com/intl/fr/appengine/docs/java/jrewhitelist.htm‌​l

1voto

Joachim Sauer Punkte 290477

Ja, der Compiler als solches ist tatsächlich nur eine normale Java-Anwendung (außer dass er normalerweise seinen eigenen nativen Launcher mitbringt, aber das ist nicht erforderlich).

Daher können Sie ihn problemlos innerhalb eines Applets oder innerhalb von GAE ausführen.

Allerdings wird Ihnen das nicht wirklich viel helfen, denn wenn Sie die erstellten Klassen tatsächlich ausführen möchten, müssten Sie mit ClassLoader-Instanzen spielen, was in (nicht signierten) Applets nicht erlaubt ist und wahrscheinlich auch nicht in GAE erlaubt ist.

0 Stimmen

Nun, Sie können java.net.URLClassLoader.newInstance verwenden, aber Sie müssten dann die Klassendateien von Remote-URLs abrufen.

0voto

Andrew Thompson Punkte 166383

..Könnte der Java Compiler in einem Applet gehostet werden?

Nur wenn Sie die tools.jar zum Laufzeitklassenpfad des Applets hinzufügen. Siehe Compiler zur Laufzeitklasse des Programms hinzufügen in der STBC-Hilfe für Details.

..Könnte der Java-Compiler auf GAE zum Laufen gebracht werden, ..

Nicht sicher, aber beachten Sie, dass anscheinend jemand eine Google-App unter dem Namen 'javacompiler' registriert hat. ;)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X