在 Web 浏览器中运行 Java

Posted

技术标签:

【中文标题】在 Web 浏览器中运行 Java【英文标题】:Run Java in your web browser 【发布时间】:2012-04-12 23:32:09 【问题描述】:

有没有办法按照这个 Ruby 网页的行在网页中运行 Java 命令行:

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

目的是让新手能够非常简单地介绍该语言,而不必担心 IDE、编译等问题。

【问题讨论】:

这在 Ruby 中相对容易,因为它是一种解释型语言,无论如何都不必担心编译。在Java中会更难。您可能会以某种方式在后台编译(有效地制作带有浏览器界面的 IDE)。或者您可以制作自己的 Java 解释器 - 但严格来说,我不确定这是否仍然是 Java。 【参考方案1】:

好吧,由于 Java 是一种编译语言并且没有REPL,所以没有这样的“命令行”。但我可以从理论上想到实现这个想法的可能方法。

Applet 可能不是真正的解决方案。我不知道在有限的权限下你能走多远。安全问题可能允许您仅在沙箱中操作和/或不编译/执行代码。

Java WebStart 应用程序可能具有此类权限。提供一个精简的 IDE 将是一项类似的任务。或者让 Bluej 从 WebStart 运行。

提供一个 Web 应用程序,该应用程序只需向服务器提交请求,该服务器编译并执行代码并返回结果。我假设(我不确定)许多在线 REPL 都是这样工作的。 (通过浏览try python 的javascript,我认为它记录了AJAX 请求)但是仍然存在安全问题,例如如果程序开始随机删除文件怎么办? Google Appengine 具有防止滥用的高级安全机制。要为“try java”实现它们,需要付出更多的努力。

下一个想法是将所有内容限制为 Java 语言的一个子集。为了提供一个简短的介绍、一个带有预定义答案的小教程以及一些基本的数学知识,您可以在客户端编写一些 JavaScript 来确定学习者的答案是否正确。

不要忘记当前正在开发基于 Web 的 IDE,例如 Eclipse Orion。也许您可以观察这些项目的发展并将它们用于此目的。目前我只看到那里编辑过 JavaScript 代码,执行 JS 是网络浏览器的自然能力之一。我不知道他们会支持哪些编程语言,也不知道是否支持代码执行。

【讨论】:

【参考方案2】:

但通常需要编译 java 才能对 JVM 有用。所以我不确定你能做任何对java有用的事情。主要区别在于解释型 (Ruby) 与编译型 (java) 实现。

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

【讨论】:

以上是关于在 Web 浏览器中运行 Java的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Web 浏览器中启用 Java

java程序怎么在Web服务器里运行.

如何在 Web 浏览器中启用 Java

JAVA万能:JNLP在浏览器上以WEB方式运行JAVA程序

Android浏览器访问java web的方法

java web运行原理