技术开发 频道

JavaScript引擎实现JVM 支持运行Java

        【IT168 评论】随着各种各样的编程语言铺地盖地向我们涌来,我们软件世界也似乎变得有点疯狂了。Java虚拟机(Java Virtual Machine,简称JVM)是一个虚拟的机器,在计算机上通过软件模拟来实现。Java虚拟机有自己虚拟的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。

  Java语言的一个非常重要的特点就是平台的无关性。而使用JVM是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入JVM后,Java语言在不同平台上运行时不需要重新编译。Java语言使用JVM屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,把字节码解释成具体平台上的机器指令执行。

JavaScript 能否取代Java虚拟机?

  使用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时代的到来。

   参考英文:http://www.i-programmer.info/news/167-javascript/3360-javascript-jvm-runs-java.html

3
相关文章