写点什么

J2CL:一款将 Java 编译成 JavaScript 的工具

  • 2019-05-27
  • 本文字数:916 字

    阅读完需:约 3 分钟

J2CL:一款将Java编译成JavaScript的工具

J2CL是一个开源的编译器,可以将 Java 编译成 JavaScript,由谷歌设计、开发和开源。J2CL 开发者称这款编译器”可以在 JavaScript 应用程序中无缝地使用 Java“。它想要解决的问题与其他 Java-JavaScript 框架(如 GWT)想要解决的问题不一样,也不想与其他框架展开竞争或者取代其他框架,它旨在提升跨平台代码重用性和互操作性。J2CL 开发者说”借助 J2CL,你可以在 JavaScript 中访问 Java 代码,或者直接用它创建整个应用程序,具体取决于你的实际需求“。


这个工具具备很强的灵活性,可以通过多种方式来使用它。其中一个使用场景是让运行在多个平台上的复杂逻辑可以被跨平台共享。例如,J2CL 前贡献者之一 Thomas Deegan 说,”Google Docs 的前端代码使用 Java 编写,然后使用 J2CL 将所有文档操作和渲染逻辑从 Java 编译成 JavaScript“。还有一种使用场景是在 Node.js 应用程序中重用 Java 库。


J2CL 可以编译大多数已有的 Java 代码,但并非支持所有的 Java API(比如 Java 反射 API)。默认情况下,编译后的代码不是公开的,JsInterop提供的一些 Java 注解可用来标注哪些类、方法、实例变量等可以被暴露出来。这个项目提供了一些简单的”hello world“示例来演示如何使用它。下面对这个示例进行了细微的修改,演示了如何在 JavaScript 中被注解的 Java 类。


下面是 Java 类:


package com.acme
import jsinterop.annotations.JsType;
@JsTypepublic class HelloWorld { public static String getHelloWorld() { return "Hello from Java!"; }
复制代码


}


在 JavaScript 中使用这个类:


const HelloWorld = goog.require('com.acme');console.log(HelloWorld.getHelloWorld());
复制代码


这个项目的开发者表示,这个工具已经可以用在生产环境中,并且已经是”谷歌多个 GSuite 应用程序的底层技术,包括 GMail、Inbox、Docs、Slides 和 Calendar“。


这个项目在去年开源,但项目可以追溯到 2014 年。J2CL 最初与 GWT 项目有关,2015 年初,开发者认为它不应该是 GWT 项目的一部分,并把它剥离出来成为一个独立的项目。这个项目目前还不能与其他工具集成,对 Windows 的支持也很有限。


更多信息可以访问项目的GitHub主页或者入门指南


查看英文原文J2CL: A Java to JavaScript Transpiler


2019-05-27 00:0015092
用户头像

发布了 731 篇内容, 共 473.9 次阅读, 收获喜欢 2008 次。

关注

评论 1 条评论

发布
用户头像
看别的文章说也不支持网络API,感觉实用性瞬间下去一大半
2019-05-27 00:55
回复
没有更多了
发现更多内容

张博,在压力下保持松弛的研一字节“老员工”|MarsCoders 开发者说

TRAE.ai

程序员 AI 开发工具 智能

人工智能在招聘领域的革新:2024年值得关注的招聘API

幂简集成

招聘 API AI招聘

【HarmonyOS】鸿蒙Text组件两端对齐

zhongcx

华为云发布全栈可观测平台AOM,以AI赋能应用运维可观测

平平无奇爱好科技

华为云分布式消息服务DMS 9月新动态上线啦!

平平无奇爱好科技

HarmonyOS NEXT 底部选项卡功能

威哥爱编程

HarmonyOS ArkTS HarmonyOS NEXT

Go语言对接微信支付与退款全流程指南

不在线第一只蜗牛

golang 微信 开发语言

价值社交新势力:RFG 通证为何如此火爆?

股市老人

【HarmonyOS】鸿蒙组件长截屏方案

zhongcx

华为云金融PaaS 赋能金融核心,激发云上创新

平平无奇爱好科技

【HarmonyOS】鸿蒙自定义圆点进度条

zhongcx

inBuilder低代码平台新特性推荐-第二十五期

inBuilder低代码平台

低代码 组件

深圳测试开发高薪线下周末班即将开班,从自动化到测试平台开发

霍格沃兹测试开发学社

澜舟智会再升级|企业用户与专业人士的智能会议助手

澜舟孟子开源社区

人工智能 智能助手 大模型 提高效率

做效能度量,如何避免落入“此消彼长”的怪圈?

思码逸研发效能

程序员 DevOps 研发效能 效能度量 业技融合

HarmonyOS NEXT 开发之ArkTS基础入门

威哥爱编程

HarmonyOS ArkTS HarmonyOS NEXT

刘洋,一个爱 drink 的好运程序员|MarsCoders 开发者说

TRAE.ai

人工智能 程序员 AI 智能

cad设计绘图工具:AutoCAD(CAD2024)中文特别版

你的猪会飞吗

AutoCAD 2024 Mac版 AutoCAD 2024下载 AutoCAD 2024破解

在角色不一的全功能团队,如何做绩效排名?

思码逸研发效能

DevOps 研发效能 绩效管理 效能度量 研发效能管理

【华为全联接大会2024】ONES与华为云深度合作,共同打造企业智能研发管理平台

平平无奇爱好科技

【HarmonyOS】鸿蒙分页滚动文本组件

zhongcx

【HarmonyOS】鸿蒙H5页面调用图库

zhongcx

现场直击!2023望繁信科技产品发布会精彩回顾

望繁信科技

数字化转型 流程挖掘 流程资产 流程智能 数字北极星

免费试听 | 深圳测试开发高薪线下周末班即将开班,从自动化到测试平台开发,职场进阶快人一步

测吧(北京)科技有限公司

测试

最大噪音值甚至受法规限制,如何基于LBM算法有效控制风扇气动噪音

Altair RapidMiner

仿真 噪音数据 altair

JNPF:开启智能制造新工具时代

不在线第一只蜗牛

低代码 制造业

华为云&上海钧达数科 发布区块链数据要素联合解决方案

平平无奇爱好科技

J2CL:一款将Java编译成JavaScript的工具_语言 & 开发_Dustin Schultz_InfoQ精选文章