2012-03-29 6 views
3

Gibt es eine Möglichkeit, eine Java-Befehlszeile in einer Web-Seite entlang der Linien dieser Ruby-Webseite ausgeführt:Run Java in Ihrem Web-Browser

http://tryruby.org/levels/1/challenges/0

Das Ziel ist in der Lage sein, vollständig zu geben, Neulinge eine sehr einfache Einführung in die Sprache, ohne sich um IDEs, Kompilationen usw. kümmern zu müssen.

+0

Dies ist relativ einfach in Ruby, weil es eine interpretierte Sprache ist, und muss sich sowieso keine Gedanken über die Kompilierung machen. In Java wäre es schwieriger. Sie könnten möglicherweise im Hintergrund irgendwie kompilieren (effektiv eine IDE mit einer Browserschnittstelle machend). Oder Sie könnten Ihren eigenen Java-Interpreter erstellen - aber ich bin mir nicht sicher, ob das genau genommen immer noch Java wäre. – raveturned

Antwort

2

Nun, da Java eine kompilierte Sprache ist und keine REPL, gibt es keine solche „Kommandozeile“. Aber ich kann theoretisch denken Möglichkeiten, um die Idee zu implementieren.

  • Ein Applet ist möglicherweise nicht wirklich eine Lösung. Ich weiß nicht, wie weit man mit eingeschränkten Berechtigungen kommen kann. Aufgrund von Sicherheitsbedenken können Sie möglicherweise nur in einer Sandbox arbeiten und/oder Code nicht kompilieren/ausführen.

  • Eine Java WebStart-Anwendung verfügt möglicherweise über solche Berechtigungen. Es wäre eine ähnliche Aufgabe, eine schlanke IDE bereitzustellen. Oder machen Sie Bluej von WebStart ausführen.

  • Stellen Sie eine Webanwendung bereit, die einfach eine Anforderung an einen Server sendet, der den Code kompiliert und ausführt und das Ergebnis zurückgibt. Ich nehme an (Ich bin mir nicht sicher) viele Online-REPL arbeiten so. (Indem ich das JavaScript von try python überfliege, denke ich, dass es AJAX-Anträge ablegt) Aber dann gibt es noch ein Sicherheitsproblem, wie wenn ein Programm beginnt, Dateien zufällig zu entfernen? Google Appengine verfügt über erweiterte Sicherheitsmechanismen, um Missbrauch vorzubeugen. Um sie für "try java" zu implementieren, würde dies eine erhöhte Anstrengung erfordern.

  • Nächste Idee ist, alles auf eine Teilmenge der Java-Sprache zu beschränken. Für eine kleine Einführung, ein kleines Tutorial mit vordefinierten Antworten und vielleicht etwas Grundrechenarten könnte man auf der Client-Seite JavaScript schreiben, um zu entscheiden, ob die Antworten des Lernenden korrekt sind oder nicht.

  • Vergessen Sie nicht, dass derzeit webbasierte IDEs entwickelt werden, z. B. Eclipse Orion. Vielleicht könnten Sie beobachten, wie sich diese Projekte weiterentwickeln und für einen solchen Zweck nutzen. Derzeit habe ich nur JavaScript-Code dort bearbeitet gesehen, und die Ausführung von JS ist eine der natürlichen Fähigkeiten des Webbrowsers. Ich weiß nicht, welche Programmiersprachen sie unterstützen oder ob die Codeausführung unterstützt wird.

  • 0

    Aber normalerweise muss Java kompiliert werden, um für eine JVM nützlich zu sein. Ich bin mir also nicht sicher, ob Sie so etwas für Java tun können. Der Hauptunterschied liegt in der interpretierten (Ruby) vs kompilierten (Java) Implementierung.

    Siehe What's the difference between compiled and interpreted language?