Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用。Nashorn javascript引擎只是javax.script.ScriptEngine另一个实现,而且规则也一样,允许Java和JavaScript互相操作。这里有个小例子:
ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName( "JavaScript" ); System.out.println( engine.getClass().getName() ); System.out.println( "Result:" + engine.eval( "function f() { return 1; }; f() + 1;" ) ); 输出如下: jdk.nashorn.api.scripting.NashornScriptEngine Result: 2
实际使用,因为在抓取第三方平台网页上的数据,有些数据项被js编码后,用在java中模拟写一个解码的代码比较费时, 而解码后的数值,还需要用在其他抓取上, 所以引入java调用js的一个场景,利用本省自己解码的方式。
try{ ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("javascript"); String jsFileName = "/home/xxxx/dev1.4.7/expression.js"; // 读取js文件 FileReader reader = new FileReader(jsFileName); // 执行指定脚本 engine.eval(reader); if(engine instanceof Invocable) { Invocable invoke = (Invocable)engine; // 调用merge方法,并传入两个参数 //js中的函数的名称:getEncodeURIComponentValue //函数中所需要的参数 String value = (String)invoke.invokeFunction("getEncodeURIComponentValue", history.getListcoName()); System.out.println("c = " + value); } reader.close(); }catch(Exception e){ e.printStacktrace(); }
参看地址:
http://ifeve.com/java-8-features-tutorial/
相关推荐
Nashorn引擎首次引入于Java 8,作为对之前Rhino JavaScript引擎的升级,旨在提供更快的速度和更现代的JS语法支持。 Nashorn引擎的主要特性包括: 1. **高性能**:Nashorn比Rhino更快,因为它基于Java的HotSpot...
Nashorn引擎是Java 8中引入的新特性,它取代了Rhino引擎,提供了更好的性能和安全性。Nashorn引擎支持多种脚本语言,包括JavaScript、ECMAScript、JScript等。 Nashorn引擎的特点 Nashorn引擎有以下几个特点: * ...
Nashorn 是 Oracle 公司开发的一款 JavaScript 引擎,自 JDK 8 起成为 Java 平台标准版的一部分。Nashorn 的主要特点是高性能、安全性高和可扩展性强。它支持 ECMAScript 5.1 标准,提供了许多高级特性,如函数式...
5. ** Nashorn JavaScript引擎**:Java 8引入了Nashorn JavaScript引擎,允许在Java应用中直接执行JavaScript代码,提供了Java与JavaScript之间的互操作性。 关于安装步骤,描述中提到“双击安装即可”,这意味着在...
5. ** Nashorn JavaScript引擎**:Java 8引入了一个内置的JavaScript引擎,使得Java与JavaScript之间的交互变得更加便捷。 6. **并行GC优化**:JDK 1.8对垃圾收集器进行了优化,如G1(Garbage-First)GC,提供了更...
- Nashorn 是一个由Oracle公司开发的JavaScript引擎,首次在Java 8中作为标准库的一部分发布。 - 它的主要目的是为了提供一种快速、轻量级的方式在Java平台上运行JavaScript代码,同时也支持ECMAScript 5.1规范。 ...
Java Nashorn引擎是Java平台标准版(Java SE)8中引入的一个重要特性,它提供了一个内置的JavaScript引擎,使得Java开发者可以直接在Java应用程序中执行JavaScript代码。Nashorn引擎是基于Mozilla的SpiderMonkey ...
6. ** Nashorn JavaScript引擎**:Java 8包含了一个内置的Nashorn JavaScript引擎,允许Java代码与JavaScript代码交互,实现混合编程。 对于JDK 8u202这个具体更新,它通常包括性能优化、错误修复和安全更新。这些...
9. **Nashorn JavaScript引擎**:Java8引入了Nashorn JavaScript引擎,允许Java代码直接执行JavaScript,提供了Java与JavaScript之间的互操作性。 10. **Type inference for generic instance creation**:Java8...
10. ** Nashorn JavaScript引擎**:Java 8内置了一个JavaScript引擎,允许Java程序与JavaScript代码交互,增强了脚本语言的支持。 以上只是Java 8新特性的一部分,这些改变使得Java更加现代化,提高了开发效率,...
6. Nashorn JavaScript引擎:允许在Java程序中直接执行JavaScript代码,实现了Java与JavaScript的交互。 “使用说明.txt”文件可能包含了详细的安装指南和使用JDK时的一些注意事项,包括如何验证安装是否成功(通过...
8. ** Nashorn JavaScript引擎**:Java 8集成了Nashorn JavaScript引擎,允许在Java应用中直接运行JavaScript代码,提供了Java与JavaScript之间的互操作性。 9. **并行数组操作**:`java.util.Arrays`类提供了新的...
8. ** Nashorn JavaScript引擎**:Java 8内置了一个JavaScript引擎,名为Nashorn,允许Java应用程序直接执行JavaScript代码并与之交互。 在下载并安装"jdk-8u281-windows-x64.exe"之后,开发者将获得Java运行时环境...