写点什么

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

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

关注

评论 1 条评论

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

杭州市等级保护测评机构名录-2023年

行云管家

等保 等级保护 等保测评 杭州

带你彻底掌握Bean的生命周期

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号 6 月 PK 榜

.NET源码解读kestrel服务器及创建HttpContext对象流程

不在线第一只蜗牛

.net 开发语言

汇聚漫天星光,点燃HarmonyOS之火,2023HSD校园行·清华大学站圆满收官

最新动态

来啊!跟我一起“单排”推荐系统!

博文视点Broadview

华为云GaussDB为MetaERP“成本核算”产品“保驾护航”

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

堡垒机免费版在哪里下载?是否安全可靠?

行云管家

网络安全 堡垒机 免费堡垒机

软件测试/测试开发丨Pytest结合数据驱动-JSON

测试人

json 程序员 软件测试 数据驱动 pytest

一场专属开发者的技术盛宴——华为开发者联创日首站登陆深圳

云计算 AI 华为云 华为开发者大会2023

软件设计原则与设计模式

源字节1号

开源 软件开发 前端开发 后端开发 小程序开发

强化学习从基础到进阶-常见问题和面试必知必答[2]:马尔科夫决策、贝尔曼方程、动态规划、策略价值迭代

汀丶人工智能

人工智能 深度学习 强化学习 马尔科夫决策 6 月 优质更文活动

强化学习从基础到进阶-案例与实践[2]:马尔科夫决策、贝尔曼方程、动态规划、策略价值迭代

汀丶人工智能

人工智能 深度学习 强化学习 马尔科夫决策 6 月 优质更文活动

CSR格式如何更新? GES图计算引擎HyG揭秘之数据更新

华为云开发者联盟

大数据 华为云 华为云开发者联盟 企业号 6 月 PK 榜

趋势分享 | 多云时代数据安全面临的挑战

原点安全

火山引擎数智平台最新直播活动:ByteHouse技术架构与最佳实践分享

字节跳动数据平台

数据 活动 直播

2023上半年Java高频面试题库总结(600+java面试真题含答案解析)

小小怪下士

Java 程序员 面试

盘点那些IT技术面试官常用的10个挂人套路

程序员小毕

程序员 程序人生 java面试 后端架构师 技术面

重磅国赛来了!2023中国高校计算机大赛-人工智能创意赛启动报名

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨

英特尔锐炫:驱动持续进步,尽展硬件潜力

E科讯

PWA和小程序的比较与优势

没有用户名丶

DevOps|中式土味OKR与绩效考核落地与实践

laofo

DevOps OKR 研发效能 绩效考核

以梦为码 自主创新 | 华为云开发者日成都站圆满举行!

华为云开发者联盟

云计算 华为云 华为云开发者联盟 企业号 6 月 PK 榜

Java 网络编程 —— RMI 框架

不在线第一只蜗牛

Java

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