如何将Java源代码交叉编译为JavaScript?

2022-08-31 19:59:15

给定一组Java源代码文件,我如何将它们编译成一个或多个可以与手工制作的JavaScript一起使用的JavaScript文件?

GWT是一种选择,但到目前为止我看到的每个例子都是为了建立花哨的网站。将Java源代码转换为可以与手工制作的JavaScript一起使用的简单用例尚未得到很好的记录

我在GWT邮件列表上发起了一个关于这个主题的帖子,但对于这是否可行,意见似乎不一。

一个人给了一个非常有用的小费,那就是检查GWT-Exporter。问题在于,源代码和文档都不是现成的,尽管有这个这个

编辑: GWT-导出器源代码在这里

我也看过Java2Script。但同样,我无法找到如何解决我的简单用例的示例。

解决这个问题的最佳方法是什么?我错过了更好的东西吗?


答案 1

当你使用GWT时,你基本上是将UI部分转换为Javascript(它假设你使用编写Java时提供的UI小部件)。只有一些Java库可以在Javascript中访问。通常,在GWT应用程序中,任何大量使用Java库的东西都会在服务器端运行,并以AJAX(GWT为您处理)的形式连接到Javascript。因此,GWT不一定将你的完整应用程序转换为Javascript(尽管如果你愿意限制对Java库和某些功能的使用,它可以)。

无论如何,如果这种方法(从Javascript中调用在服务器上运行的Java)吸引你,一个不错的选择是DWR,它基本上允许你的Javascript直接调用在服务器上运行的Java类中的方法(而不必构建Web服务或其他前端)。我知道,不是你问的。

更相关的是,看起来有一个示例应用的源代码演示了 gwt-exporter 的使用


答案 2

虽然问题是关于将Java源代码编译为JavaScript,但我认为值得一提的是,有TeaVM将Java字节码编译为JavaScript。我从未尝试过,但它似乎非常有前途。