写点什么

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

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

关注

评论 1 条评论

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

缓存之美——如何选择合适的本地缓存?

京东科技开发者

Proxifier for Mac(全局代理客户端)

Mac相关知识分享

Keka for Mac(mac压缩解压软件)中文版

Mac相关知识分享

AI 技术开发英语阅读理解系统

北京木奇移动技术有限公司

AI技术 AI教育 软件外包公司

五个等保知识点总结-行云管家

行云管家

信息安全 等保 等级保护 等保测评

Final Cut Pro X for Mac(fcpx视频剪辑)中文版

Mac相关知识分享

说说天翼云大规模数据中心组网架构的优势

天翼云开发者社区

云计算 数据中心 天翼云

VMware的快照原理

天翼云开发者社区

vmware 快照

Navicat Premium 15 for Mac(数据库开发工具)

Mac相关知识分享

数据库堡垒机是干嘛的?有什么用?怎么定义?

行云管家

网络安全 数据安全 堡垒机 数据库堡垒机

WebGL开发医学影像识别的挑战

北京木奇移动技术有限公司

医学影像 软件外包公司 webgl开发

AI 技术在英语学习中的主要应用

北京木奇移动技术有限公司

英语学习 AI教育 软件外包公司

结合LangChain实现网页数据爬取

测试人

人工智能 软件测试

夜莺监控支持 ES 日志告警了

巴辉特

夜莺监控 开源监控 日志告警 ES告警

开年「荣誉三重奏」,融云斩获技术、产品、出海三项大奖!

融云 RongCloud

AI 技术在词汇学习系统的功能

北京木奇移动技术有限公司

英语学习 AI教育 软件外包

Fluss: First Impression

Apache Flink

大数据 flink 实时计算 流存储

【GreatSQL优化器-10】find_best_ref

GreatSQL

人工智能与物联网:智慧城市的未来

天津汇柏科技有限公司

物联网 AI 人工智能

AI 技术开发口语对话机器人

北京木奇移动技术有限公司

AI技术 软件外包公司 AI口语练习

架构提效的矛盾和矛盾的主要方面

京东零售技术

StarRocks Awards 2024 年度贡献人物

StarRocks

二维码如何颠覆医院护理健康宣教?一线经验分享

软件大师兄

二维码 二维码系统

2025 年 AI 与数据工程领域十大趋势前瞻

Baihai IDP

程序员 AI 数据工程

云上一键部署 DeepSeek-V3 模型,阿里云PAI Model Gallery 最佳实践

阿里云大数据AI技术

人工智能 API 强化学习 LLM PAI

【A/B实验常见问题】实验异常值应该如何处理?

京东零售技术

数字化时代下的数字化资产及其治理

京东科技开发者

使用 Taro 开发鸿蒙原生应用 —— 快速上手,鸿蒙应用开发指南

京东科技开发者

Sketch for mac(专业矢量绘图设计软件)中文版

Mac相关知识分享

Boost Efficiency with Wallys' One-Click AP Configuration

wallyslilly

IPQ6010

智慧公厕解决方案的定义、特点、技术核心!

光明源智慧厕所

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