20

是否有任何JavaScript jvm 实现
如果没有,你能给我一些为什么它还没有实现的原因吗?(可能不可能?)我试图了解创建一个缺少什么?

我问的原因是我想创建具有编译功能的 Web 浏览器 ide,甚至没有在计算机上安装 jdk 或 jre(仅在浏览器中)。

4

7 回答 7

18

最新的似乎是Doppio

于 2013-03-26T19:10:18.267 回答
7

你可以看看bck2brwsr (aka java.net HTML)

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

该项目的范围是执行任何现有的 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

第三步:解压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

于 2013-05-17T18:59:42.813 回答
6

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

于 2012-09-07T11:12:08.813 回答
3
  1. +script似乎也很有趣,而且作者也在基于 Web 的 IDE 上工作。

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

  3. Orto项目可能已经死了。

于 2013-04-02T19:54:02.470 回答
2

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

https://www.javapoly.com/

于 2016-05-09T17:53:23.330 回答
0

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

于 2012-09-07T11:06:57.470 回答
0

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

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

于 2019-09-14T10:26:32.023 回答