首页 >  JAVA频道 > JAVA相关 > 

DukeScript:随处运行Java的新尝试

DukeScript:随处运行Java的新尝试

作者:yjl 来源:华育国际 时间:2015-02-26 访问次数:3124
Jaroslav Tulach是NetBeans的创始人和最初的架构师,Anton (Toni) Epple则是一位Java咨询师和培训师,最近他们凭借DukeScript获得了2014年的Duke选择奖。DukeScript这门技术希望能将Java带到一切客户端、移动终端或桌面

Jaroslav Tulach是NetBeans的创始人和最初的架构师,Anton (Toni) Epple则是一位Java咨询师和培训师,最近他们凭借DukeScript获得了2014年的Duke选择奖。DukeScript这门技术希望能将Java带到一切客户端、移动终端或桌面,而不需要借助插件。DukeScript这个名字有些误导性,其实它并不是一门新的脚本语言,相反它只是尝试“将Java放到JavaScript之中”,进而实现Java最初的愿景——“一次编写,到处运行”。
DukeScript是这样一门技术,它支持使用Java和HTML5创建跨平台的移动和桌面应用。不同于其他将Java应用于服务器端的解决方案,DukeScript将Java应用到了客户端,而且不依赖Oracle过去用于运行Applet的插件。该技术可以运行于Android、iOS、桌面浏览器以及任何HTML5/JavaScript环境中。
Epple向InfoQ解释了DukeScript及相关技术是如何工作的:
一个DukeScript应用的基本架构其实非常简单,包括3个组件:一个是Java虚拟机,一个是HTML渲染组件,再就是DukeScript。DukeScript将JVM和HTML组件粘合到一起,作为运行在虚拟机中的业务逻辑和用HTML/JavaScript编写的UI之间的桥梁。
DukeScript应用运行在JVM中,使用HTML渲染器显示页面。当页面加载时,DukeScript会在内部通过Knockout.js,将该页面的动态元素绑定到数据模型。它与典型的Knockout.js应用的差别在于,数据模型由Java对象组成,用户可以在Java代码中操控这些对象。利用这种方式,业务逻辑可以完全用Java编写,与UI清晰地分离开来。
在我们支持的每一个平台上,都要找到一个JVM和一个WebView组件,并将其衔接到一起。显而易见,真正的困难在于通信,因为每个平台都略有不同。