JavaScript jvm implementation

JavaScript jvm implementation

本文关键字:implementation jvm JavaScript      更新时间:2023-09-26

是否有任何JavaScript jvm实现
如果没有,你能告诉我为什么它还没有实现吗?(可能不可能?)我试图理解创造一个没有什么

我之所以这么问,是因为我想创建具有编译功能的web浏览器ide,甚至不需要在计算机上安装jdk或jre(仅在浏览器中)。

最新的似乎是Doppio

您可以查看bck2brwsr(又名java.netHTML)

  • 它是一个将java字节码转换为JavaScript的虚拟机(Bck2Brwsr虚拟机)
  • 为HTML(通过Java API的HTML)提供了一个基于Java的包装器

项目的范围是而不是执行任何现有的java库。(参见http://wiki.apidesign.org/wiki/Bck2Brwsr)

网上有两个很好的例子:

  • 一个能提供良好技术洞察力的计算器(http://xelfi.cz/bck2brwsr/)
  • 一个很好的太空入侵者演示作为概念的证明(JAYDAY 2013 java峰会页面)

开始使用工作示例(需要Maven和JDK7):

步骤1:加载原型

mvn archetype:generate -DarchetypeGroupId=org.apidesign.bck2brwsr '
 -DarchetypeArtifactId=bck2brwsr-archetype-html-sample -DarchetypeVersion=0.7.2 '
 -DarchetypeRepository=https://maven.java.net/content/repositories/releases/

步骤2:构建HTML页面和依赖项,并打包为ZIP文件

mvn install
# produces bck-1.0-SNAPSHOT-bck2brwsr.zip

步骤3:打开ZIP

cd target; unzip bck-1.0-SNAPSHOT-bck2brwsr.zip
  creating: public_html/
  creating: public_html/lib/
  extracting: public_html/lib/emul-0.7.2-rt.jar  
  extracting: public_html/lib/javaquery.api-0.7.2.jar  
  inflating: public_html/bck2brwsr.js  
  extracting: public_html/bck-1.0-SNAPSHOT.jar  
  inflating: public_html/index.html 

步骤4:使用浏览器打开index.html

不确定jsJVM有多成熟,但看起来像是你感兴趣的东西。正如页面所说,它是用Javascript编写的JVM。

  1. +这个脚本看起来也很有趣,而且作者也在一个基于web的IDE上工作。

  2. BicaVM可能是另一种选择。

  3. 奥尔托项目可能已经夭折。

    • 有人知道我在哪里能找到";Orto";Javascript JVM
    • http://ejohn.org/blog/running-java-in-javascript/

答案很晚,但对于未来的询问者来说:自从第一次提出这个问题以来,已经发布了一个新的Java JVM JavaScript实现。它声称即使没有安装Java也可以实现JVM。

https://www.javapoly.com/

使用JavaScript编译Java的问题之一是,编译器通常需要知道目标Java最低版本的方法和属性的存在(或不存在)。甚至为了知道这些信息,您还需要存储描述目标J2SE的每个类的公共成员的属性或变量。这表示非常大的信息块。

有一个用Java编写的JVM,它有一个JavaScript字节码解释器:https://gitlab.com/neoexpert/jvm

它还可以将Bytecode直接编译为JavaScript以提高性能。