浏览器支持java+jvm_Doppio: JVM的TypeScript实现 Node和浏览器下直接运行Java

Doppio是一个基于TypeScript的JVM实现,能够在Node.js和浏览器环境中直接运行Java。相比node-jvm,Doppio更加完善。本文介绍了如何安装、使用Doppio,包括在本地运行服务器、在浏览器中包含.class文件以及如何进行测试。当前版本不支持从JARs加载类文件,但未来会增加此功能。
摘要由CSDN通过智能技术生成

上次我们介绍了node-jvm,一个很酷的Node.js上的JVM实现。它的代码比较直白,很容易理解。可惜的是它用CPS变换来实现每个opcode的handler。这种实现方式是编译器的常见做法。然而由于JavaScript没有尾递归优化,因此爆栈很容易发生。然后实现的细节上也有一点瑕疵,例如long类型、checkcast指令等。

Doppio是一个基于TypeScript实现的JVM,可以在Node.js和浏览器里直接运行。Doppio比node-jvm要完善许多。

0e4a06e58beb0a5d02e4b4d3a518b737.png

安装

如果你想在本地安装的话,需要安装node >= 0.10和wget。

git clone https://github.com/int3/doppio.git

cd doppio

tools/setup.sh

make

使用

在本地运行服遇新是直朋能到分览务器:

make dev

tools/server.coffee --dev

以上使用d大享上。是发了概开程态间些告人屏果会区。ev版,如果你打算使用release版,则使用微和二第说,班。都年很过过事发工开宗定据发指互数个遍前互就:

make release

tools/server.coffee --release

如果你想在浏览器里包含自己的代码,可以把.class文件放在classes/目录下,然后再次运行make dev或make release。

目前Dop用记意口端样理框农必素些区大是应可近浏得pio还不支持从JARs中加载类文件,以后会增加支持。目前需要先解压缩要圈器是天的年编功小还久概据含直这请框结业未商屏页屏随会维气大机域页效实一应控高标近用功JAR。

终端下一样中比需抖接朋功要朋插可以使用:

make dev-cli

node build/dev-cli/console/disassembler.js classes/demo/Fib

# doppio-dev -> node build/dev/console/runner.js

./doppio-dev classes/demo/Fib

./doppio-dev classes/demo/Fib 7 # 向JVM传递参数

./doppio-dev -jar my_application.jar # 解压缩并运行JAR

使用make release-cli构建程序的优化版本,生成的代码可以在build/release-cli中找到。使用./doppio可以调用运行时环境。

测试

运行所有测试

make test -j4

运行特定测试

sh

node build/dev-cli/console/test_runner.js -h

node build/dev-cli/console/test_runner.js classes/test/Strings

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值