如何将现有的JavaScript转换为Java以在GWT中使用?

4
有没有一种工具可以将JavaScript转换成Java,以便我可以使用GWT处理项目?
更新:
对于那些不知道的人,GWT(Google Web Toolkit)是一个工具包,用于编写Java并获取JavaScript,因此我的问题。
5个回答

10

您到底想要什么?如果您正在寻找一种自动工具,从Javascript生成GWT Java代码的工具,那么恐怕并没有这样的工具。

您可以(也应该)使用JavaScript本地接口(JSNI),可能结合JavaScript覆盖类型(JSO),来包装您现有的Javascript代码,以便可以在GWT的Java代码中与之交互。请参阅GWT官方博客上的深入了解GWT,第1部分:JSNI (和第2部分)文章,了解一些指针和用例。


4

作为概念验证,我编写了一个翻译器,将JavaScript的一小部分转换为Java。它基于SWI-Prolog的transpiler库:

:- use_module(library(transpiler)).
:- set_prolog_flag(double_quotes,chars).
:- initialization(main).
main :- 
    Input = "function add(a,b){return a+b;} function squared(a){return a*a;} function add_exclamation_point(parameter){return parameter+\"!\";}",
    translate(Input,'javascript','java',X),
    atom_chars(Y,X),
    writeln(Y).

这是由该程序生成的Java源代码:
public static String add(String a,String b){
        return a+b;
}
public static int squared(int a){
        return a*a;
}
public static String add_exclamation_point(String parameter){
        return parameter+"!";
}

1
在理论层面上,你可以使用Rhino compiler将JavaScript转换为Java类文件,但该项目现在似乎大多已经被放弃,使用它将结果再次转换回JavaScript会很疯狂。
对于GWT来说,由于最终需要返回JavaScript,因此应使用JavaScript本地接口来调用现有的JavaScript代码。

0

我会简单地回答“不”

JavaScript 和 Java 是如此完全不同,以至于我无法想象会有一个。


0

开个玩笑,问问谷歌他们是怎么做到的...

说真的,我还没有听说过这样一种将JavaScript解释为Java的公共工具...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接