【锁定直播】字节、华为云、阿里云等技术专家讨论如何将大模型接入 AIOps 解决实际问题,戳>>> 了解详情
写点什么

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:0014009
用户头像

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

关注

评论 1 条评论

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

架构实战营 模块二 作业

三叔叔_拖延症晚期

架构实战营

模块二作业

晨晨

架构实战营 -- 模块二

小牧ah

架构实战营

标签体系下的用户画像建设小指南

王知无

架构实战营 - 模块二

绝影

架构训练营

设计消息队列存储消息数据的 MySQL 表格——架构实战营作业八

开拓纪

架构师实战营 作业八

作业2-微信朋友圈高性能分析

Nullrable

架构实战课

大数据训练营一期0711作业

朱磊

模块2作业G20210698020270

哆啦A萌

架构实战营 - 模块 2 - 作业

Vincent

架构实战营

模块一作业-架构训练营

零度

「架构师训练营第 1 期」

在线XML转CSV工具

入门小站

工具

分析微信朋友圈的高性能复杂度

feitian

架构训练营模块二作业

河马先生

架构实战营

微信朋友圈复杂度分析

buoge

ApacheCon 首次亚洲大会火热来袭,SphereEx 邀您共赴年度盛会

SphereEx

架构实战营作业七——王者荣耀商城异地多活架构设计

开拓纪

架构实战营 模块七

架构训练营-模块二

小卷儿

Linux之df命令

入门小站

Linux

推荐一个软件--IObit Uninstaller

IT蜗壳-Tango

7月日更

Java单例模式一文通

喵叔

7月日更

架构模块2 作业

柱林

架构模块2

慕溶枫

#架构实战营

趣说开源|为什么要参与到开源社区中?

SphereEx

架构实战营模块二 作业

酷飞不会飞

【架构实战营】模块二作业

Abner S.

架构实战营 #架构实战营

模块二作业

king

微信朋友圈的高性能复杂度

伏波

架构实战营

作业二朋友圈高性能架构设计

王小森

架构实战营第一期--模块二作业

clay

架构实战营

领域驱动设计中的分层模型

escray

学习 极客时间 7月日更 如何落地业务建模

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