`

Java8新特性- Nashorn javascript引擎

    博客分类:
  • JAVA
 
阅读更多

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/

 

 

 

分享到:
评论

相关推荐

    Java 8 Nashorn 脚本引擎

    Nashorn引擎首次引入于Java 8,作为对之前Rhino JavaScript引擎的升级,旨在提供更快的速度和更现代的JS语法支持。 Nashorn引擎的主要特性包括: 1. **高性能**:Nashorn比Rhino更快,因为它基于Java的HotSpot...

    JDK13-nashorn-users-guide.pdf

    Nashorn引擎是Java 8中引入的新特性,它取代了Rhino引擎,提供了更好的性能和安全性。Nashorn引擎支持多种脚本语言,包括JavaScript、ECMAScript、JScript等。 Nashorn引擎的特点 Nashorn引擎有以下几个特点: * ...

    JDK14-nashorn-users-guide.pdf

    Nashorn 是 Oracle 公司开发的一款 JavaScript 引擎,自 JDK 8 起成为 Java 平台标准版的一部分。Nashorn 的主要特点是高性能、安全性高和可扩展性强。它支持 ECMAScript 5.1 标准,提供了许多高级特性,如函数式...

    java-jdk1.8-jdk-8u191-windows-x64.zip

    5. ** Nashorn JavaScript引擎**:Java 8引入了Nashorn JavaScript引擎,允许在Java应用中直接执行JavaScript代码,提供了Java与JavaScript之间的互操作性。 关于安装步骤,描述中提到“双击安装即可”,这意味着在...

    java-jdk1.8-jdk-8u181-windows-x64.zip

    5. ** Nashorn JavaScript引擎**:Java 8引入了一个内置的JavaScript引擎,使得Java与JavaScript之间的交互变得更加便捷。 6. **并行GC优化**:JDK 1.8对垃圾收集器进行了优化,如G1(Garbage-First)GC,提供了更...

    nashorn:Java 的 Nashorn Javascript 引擎的有用和示例脚本

    - Nashorn 是一个由Oracle公司开发的JavaScript引擎,首次在Java 8中作为标准库的一部分发布。 - 它的主要目的是为了提供一种快速、轻量级的方式在Java平台上运行JavaScript代码,同时也支持ECMAScript 5.1规范。 ...

    java-nashorn-examples

    Java Nashorn引擎是Java平台标准版(Java SE)8中引入的一个重要特性,它提供了一个内置的JavaScript引擎,使得Java开发者可以直接在Java应用程序中执行JavaScript代码。Nashorn引擎是基于Mozilla的SpiderMonkey ...

    java-jdk1.8-jdk-8u202-windows-x64.zip

    6. ** Nashorn JavaScript引擎**:Java 8包含了一个内置的Nashorn JavaScript引擎,允许Java代码与JavaScript代码交互,实现混合编程。 对于JDK 8u202这个具体更新,它通常包括性能优化、错误修复和安全更新。这些...

    Java8 新特性

    9. **Nashorn JavaScript引擎**:Java8引入了Nashorn JavaScript引擎,允许Java代码直接执行JavaScript,提供了Java与JavaScript之间的互操作性。 10. **Type inference for generic instance creation**:Java8...

    Java8-JDK8-新特性学习

    10. ** Nashorn JavaScript引擎**:Java 8内置了一个JavaScript引擎,允许Java程序与JavaScript代码交互,增强了脚本语言的支持。 以上只是Java 8新特性的一部分,这些改变使得Java更加现代化,提高了开发效率,...

    java-jdk1.8-jdk-8u201-windows-x64.zip

    6. Nashorn JavaScript引擎:允许在Java程序中直接执行JavaScript代码,实现了Java与JavaScript的交互。 “使用说明.txt”文件可能包含了详细的安装指南和使用JDK时的一些注意事项,包括如何验证安装是否成功(通过...

    java8新特性

    8. ** Nashorn JavaScript引擎**:Java 8集成了Nashorn JavaScript引擎,允许在Java应用中直接运行JavaScript代码,提供了Java与JavaScript之间的互操作性。 9. **并行数组操作**:`java.util.Arrays`类提供了新的...

    (Java8)jdk-8u281-windows-x64.exe.rar

    8. ** Nashorn JavaScript引擎**:Java 8内置了一个JavaScript引擎,名为Nashorn,允许Java应用程序直接执行JavaScript代码并与之交互。 在下载并安装"jdk-8u281-windows-x64.exe"之后,开发者将获得Java运行时环境...

Global site tag (gtag.js) - Google Analytics