写点什么

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

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

关注

评论 1 条评论

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

医药制造业使用堡垒机的六个理由

行云管家

网络安全 等保 堡垒机

DeepSeek们,会让文科无用吗?

脑极体

AI

不小心清理了CAD图纸,应该怎么找回呢?

在路上

cad cad看图 CAD看图王

Easydict for mac(简洁的翻译工具)v2.12.0激活版

Rose

不懂K8s也能上云原生?三大开源平台实战对比与选型经验

北京好雨科技有限公司

rancher KubeSphere rainbond 企业号 3 月 PK 榜

面试官:你项目是如何保证高可用的?

王磊

Boxy SVG for Mac(矢量图编辑器)v4.57.3

Rose

Termius for mac(终端模拟器/SSH/SFTP客户端)v9.16激活版

Rose

Modern CSV for Mac(CSV编辑器/查看器)v2.2.1激活版

Rose

Professional Recorder Editor for Mac(专业录音和编辑软件)v7.0.4免激活版

Rose

从政府工作报告看北斗应用发展方向

江湖老铁

特斯拉、宇树、Figure AI核心供应链企业梳理与商业化壁垒,「汇丰银行」人形机器人研报解读

机器人头条

机器人 科技 人形机器人 具身智能

0代码+AI驱动,霍格沃兹测试开发学社‌「爱测智能化服务平台」限时体验

测试人

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

FoneLab Video Converter Ultimate for mac(视频格式转换器)v9.2.66中文

Rose

Allavsoft Video Downloader Converter(视频下载和格式转换)

Rose

《Operating System Concepts》阅读笔记:p228-p257

codists

操作系统

IPv6改造:翻译技术的原理和优缺点分析

防火墙后吃泡面

CAD怎么偏移图形对象?详细教程来了!

在路上

cad cad看图 CAD看图王

团队协作的痛点:如何破解项目中任务责任不明确的困局

axe

项目管理 项目管理软件 项目协作 项目协作工具 办公工具

美国开启比特币储备时代,白宫圆桌能否释放更多政策信号?

TechubNews

加密货币 加密市场 白宫

网络安全等级保护分为几级?等级划分依据是什么?

行云管家

网络安全 等保 堡垒机

DiskSlim - Disk Cleanup Pro for Mac(Mac磁盘优化清理工具)v12.1.6激活版

Rose

Pixelmator Pro for Mac(媲美PS的修图软件)v3.6.17中文激活版

Rose

GM EPUB Reader Pro for Mac(专业ePub阅读神器)v2.8.0激活版

Rose

Screen Recorder by Omi Mac(Omi录屏专家‬)v1.3.14激活版

Rose

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