background image

JavaScript 引擎实现 JVM—支持运行 Java

随着各种各样的编程语言铺地盖地向我们涌来,我们软件世界也似乎变得有点疯狂了 。

Java 虚拟机(Java Virtual Machine,简称 JVM)是一个虚拟的机器,在计算机上通过软件模拟

来实现。Java 虚拟机有自己虚拟的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。

  Java 语言的一个非常重要的特点就是平台的无关性。而使用 JVM 是实现这一特点的

关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引

入 JVM 后,Java 语言在不同平台上运行时不需要重新编译。Java 语言使用 JVM 屏蔽了与具

体平台相关的信息,使得 Java 语言编译程序只需生成在 Java 虚拟机上运行的目标代码(字

节码),就可以在多种平台上不加修改地运行。JVM 在执行字节码时,把字节码解释成具体平

台上的机器指令执行。

  使用 JavaScript 语言来编写 JVM 似乎让人不可思议。但事实却让我们无比兴奋。Java

语言并非编译成机器代码,而是编译成能够运行在虚拟机平台上的特殊字符代码,因此

我们无法阻挡一个出色的程序员可以在任何编程语言中实现这个编译过程。唯一的问题在

于你需要尽可能快的完成编译过程,来保证字节代码的运行速度控制在合理的范围内。

  Java 语言技术开发人员占据了程序员的大半江山,超级大牛 Artur Ventura 程序员用

JavaScript 编写一个 Java 

 

虚拟机 BicaVM,,并可以以运行 Java 程序。虚拟机代码可以通

过 Github 获得。他表示,我们不需要在 Web 浏览器上编写 JavaScript 脚本语言,而应该部

署一个兼容各种语言的虚拟机。他还指出,使用 JVM 类型的方法,你可以获得自动化的

沙盒,并可以轻松地将 JVM 发送至服务器上,保证浏览器的独立性和持久性。

  将 JVM 部署到浏览器上的确更有意义,但是为什么不直接用 JavaScript 语言来模拟

JVM 呢?与其让 Web 浏览器集成 JVM,不如让 JavaScript 具备 JVM 的功能。这实际上是从

插件到 JavaScript 实现的思维转变。这样不需要在浏览器中集成插件,直接用 JavaScript 就

可以实现 Java 虚拟机的功能。

  据称,经过 6 个月的开发测试,BicaVM 终于问世,BicaVM 支持 60%的 JVM 功能。

尽管还未优化,BicaVM 支持 iPad/iPhone 平台,具有支持 JNI 接口,DOM 模型等特点。

 

  总之, JavaScript 支持所有 Java 程序运行,这一点虽然让我们觉得有点奇怪,但至

少表明了浏览器应该能充当起虚拟机的角色。也许这就是 Web 时代的到来。