是否有任何JavaScript jvm 实现?
如果没有,你能给我一些为什么它还没有实现的原因吗?(可能不可能?)我试图了解创建一个缺少什么?
我问的原因是我想创建具有编译功能的 Web 浏览器 ide,甚至没有在计算机上安装 jdk 或 jre(仅在浏览器中)。
是否有任何JavaScript jvm 实现?
如果没有,你能给我一些为什么它还没有实现的原因吗?(可能不可能?)我试图了解创建一个缺少什么?
我问的原因是我想创建具有编译功能的 Web 浏览器 ide,甚至没有在计算机上安装 jdk 或 jre(仅在浏览器中)。
最新的似乎是Doppio
你可以看看bck2brwsr (aka java.net HTML)
该项目的范围是不执行任何现有的 java 库。(见http://wiki.apidesign.org/wiki/Bck2Brwsr)
网上有两个很好的例子:
从一个工作示例开始(需要 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
不确定jsJVM有多成熟,但看起来你会感兴趣。正如页面所说,它是用 Javascript 编写的 JVM。
很晚的答案,但对于未来的询问者:自从第一次提出这个问题以来,已经发布了一个用于 JavaScript 的新 Java JVM 实现。它声称即使没有安装 Java 也能实现 JVM。
使用 JavaScript 编译 Java 的问题之一是编译器通常需要知道目标 Java 最低版本的方法和属性是否存在。甚至要知道这些信息,您还需要存储描述目标 J2SE 的每个类的公共成员的属性或变量。这代表了一个非常大的信息块。
有一个用 Java 编写的 JVM,它有一个 JavaScript 字节码解释器: https ://gitlab.com/neoexpert/jvm
它还可以将 Bytecode 直接编译为 JavaScript 以提高性能。