2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

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

关注

评论 1 条评论

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

测试开发 | 数字化创新在文化保护中的崭新探索

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

测试

测试开发 | 人工智能的未来发展:科技新时代的奇迹之旅

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

测试

软件测试/测试开发/人工智能 | 测试管理核心问题,提升管理实力!

测试人

人工智能 软件测试 测试开发

软件测试/测试管理圆桌讨论会 | 解锁测试管理的核心问题,提升您的管理实力!

霍格沃兹测试开发学社

每日一题:LeetCode-394. 字符串解码

Geek_4z9ami

Go 算法 递归 LeetCode 字符串

一位福友的2023年外贸总结

九凌网络

华为云多活高可用服务MAS荣获“2023年香港星光奖“

华为云PaaS服务小智

云计算 华为云

Google 沙盒效应是什么?网站如何避免谷歌沙盒!

九凌网络

用AI为AI PC打造最强内核,英特尔是怎么做到的?

E科讯

E往无前 | 腾讯云大数据ES日志轻接入和免运维最佳实践

腾讯云大数据

ES

【写作训练营打卡|10】内容创作方式

产品破局思考:一个思维,一种策略

菜根老谭

大模型之提示工程的使用与总结 主赛道:技术人的 2023 总结

Echo_Wish

技术 年度总结 大模型 2023 提示工程

支持GPU虚拟化的云桌面厂家有哪些?

青椒云云电脑

云桌面 云桌面厂家

KubeWharf:云原生操作系统引领大规模分布式应用的新时代

熬夜磕代码、

【FAQ】运动健康服务云侧数据常见问题及解答

HarmonyOS SDK

BMF 开箱体验 开源赛道 1:高效视频处理

Echo_Wish

Python 视频处理 开源赛道1 BMF 高效视频处理

我们为什么要标准定价?如何定价?

菜根老谭

产品经理 产品标准化

产品经理该不该设计数据库表?

菜根老谭

文心一言 VS 讯飞星火 VS chatgpt (160)-- 算法导论12.4 2题

福大大架构师每日一题

福大大架构师每日一题

MegEngine 优化 dataloader 使用体验!data monitor 帮助更好定位性能瓶颈

MegEngineBot

性能优化 Data 开源框架

你需要的圣诞祝福模板都在这里了!过不过圣诞都能用!

九凌网络

深入解读ReAct框架

Bob Lin

AI Python3 openai GPT-4 #LangChain

独家好书丨《智算时代的容器技术演进与实践》免费下载

阿里巴巴云原生

阿里云 云原生 容器服务

大模型实践 | 为慧眼智能可观测平台插上ChatInsight的翅膀

网易数帆

可观测性 网易 大模型 AIGC ChatInsight

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