首页    新闻    群组    人才    下载    博客    代码贴    论坛
TeaVM 现已支持将 Java 字节码编译成 WebAssembly
2018-01-06 12:35:20 | 341次阅读 | 0评

TeaVM 是一个 AOT 编译器(翻译器),可将 JVM 字节码翻译成 JavaScript,它和著名的 GWT 有一定相似之处,但必须指出 TeaVM 并不需要 Java 源代码,而只需要 class 文件(JVM 字节码)。所以它能成功地用于 Kotlin 和 Scala 等基于 JVM 的语言。

TeaVM 在主页上的自我描述为,给不想学习 JavaScript 技术,但又想要进行 Web 前端开发的 Java 开发者的一个强大工具。(A powerful tool for Java developers who want to develop web front-end, but don't want to learn JavaScript development stack.)

为什么要用 TeaVM?

如果你喜欢 Java,比如它的静态类型等,同时你又需要写大量在浏览器里用 JavaScript 实现的逻辑。TeaVM 可提供必要的功能:

  • 预分析所有函数,只编译必须的部分

  • 生成高效的 js 代码,有时候比 GWT 生成得更快

  • 提供 Java 环境下的 JS API 和 DOM API

  • 已经与 Maven 和 Eclipse 进行了集成

  • 生成代码调用关系图

  • 支持 Java 端和浏览器端调试

而现在,TeaVM 除了可将 JVM 字节码翻译成 JavaScript,还能翻译成 WebAssembly。

对于这一消息,阮一峰在其推特发表了如下的看法:

多少公司梦寐以求的东西,这一天终于来了,Java 字节码可以编译成 WebAssembly 了。

不远的将来,Java 开发可以一个人从中间件一直写到前端网页。那个项目的首页写着,你不需要 npm、babel、webpack...,只需要 Maven 。

而 WebAssembly 最大的优点莫过于可大幅度提升 Javascript 的性能。WebAssembly 的设计目标:定义一个可移植,体积紧凑,加载迅速的二进制格式为编译目标,而此二进制格式文件将可以在各种平台(包括移动设备和物联网设备)上被编译,然后发挥通用的硬件性能以原生应用的速度运行。

目前这个项目还有很多兼容性方面的问题需要解决,所以要正式使用估计还有很长的一段路要走。可点此进入在线体验地址(Beta):http://teavm.org/sandbox/index.html

TeaVM 的详细介绍:https://www.oschina.net/p/teavm
附目前可以直接编译到 WebAssembly 的语言列表 https://github.com/appcypher/awesome-wasm-langs

(文/开源中国)     取消转载自