
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
昆明达内培训的小编这一期给大家讲讲Java Nashorn。
伴随Java 8的发布,Oracle也一同发布了Nashorn,它是在Java虚拟机上运行Javascript语言的一个引擎。Nashorn的设计是为了替换最初的运行在JVM上的项目——被称之为Rhino(Nashorn是rhino的德语中的词语)。
Nashorn完全重写和实现,谋求和Java的高效的交互性,精准地保证与JavaScript ECMA规范的一致性。Nashorn是第一个达到100%遵从JavaScript的规范,并且在绝大部分工作量上运行速度是Rhino的20倍之多。
介绍Nashorn
在JVM上运行的非Java语言
实际上,有很多非Java的语言运行在JVM上,有很多语言看起来不同与Java,例如JavaScript。这就使Java和JVM保持松耦合提供了可能,并且真正通过类文件格式的定义进行交互。这里可以通过两种不同的方式实现:
源语言具有在Java中实现的解释器。解释器在JVM上运行,并执行以源语言编写的程序。
源语言附带有一个编译器,它从源语言代码的单元生成类文件。生成的编译类文件然后在JVM上直接执行,这通常需要一些额外的语言特定的运行时支持。
Nashorn采用第二种方法,但是增加了细化,编译器在运行时内部,所以JavaScript源代码从不在程序执行开始之前编译。这意味着不是专门为Nashorn编写的JavaScript仍然可以轻松地部署在平台上。
注意:
Nashorn不像许多其他JVM语言(如JRuby),因为它不实现任何形式的解释>器。Nashorn总是将JavaScript编译为JVM字节码,并直接执行字节码。
Nashorn的动机
Nashorn在Java和JVM生态系统中提供多种用途。
首先,它为JavaScript开发人员提供了一个可行的环境来发掘JVM的强大功能。
第二,它使公司能够继续利用他们对Java技术的现有投资,同时另外采用JavaScript作为开发语言。
最后,它为HotSpot JVM中的高级虚拟机技术提供了一个伟大的工程展示。
随着JavaScript的不断增长和应用,从浏览器的传统首页扩展到更通用的计算和服务器端,Nashorn在现有的坚如磐石的Java生态系统和有前途的新技术之间架起了巨大的桥梁。
在Nashorn下执行JavaScript
接下来会介绍Nashorn的运行环境,还有两种执行JavaScript的方式(这两种方式都会在JAVA_HOME环境变量下的bin目录里执行):
jrunscript:执行以.js结尾的JavaScript脚本
jjs:一个更多功能的shell -适用于运行脚本和作为一个交互,实时代码预览功能环境以及探索Nashorn其他功能。