`

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/

 

 

 

分享到:
评论

相关推荐

    Java8-jdk-8u202-windows-x64

    Java经典版本,Java8,jdk1.8_ Java 8平台集合生产力、...其次,新加入的Nashorn引擎也使得Java程序可以和JavaScript代码互操作;再者,新的日期时间API、GC改进、并发改进也相当令人期待。 更多详情参见:Oracle.com

    java8stream源码-java-8-practice:Java8新特性实践

    java8流源码Java 8 新特性实践 Java 8 于 2014 年 3 月 18 日发布。它是 Java 软件开发平台的革命性版本。 它包括对 Java 编程、JVM、工具和库的各种升级。 Java 8 是 Java 历史上功能最丰富的版本之一。 Java 8 ...

    java8集合源码-poc-java8-lambda-stream-rxjava:poc-java8-lambda-stream-rxjava

    java8集合源码java8 lambda 流 rxjava 在 Java 8 版本中,Java 提供了对函数式编程、新的 JavaScript 引擎、用于日期时间操作的新 API、新的流 API 等的支持。 新的功能: Lambda 表达式 向 Java 添加函数处理能力。...

    2018最新 Java9新特性详解视频

    .课程目录结构 2.储备知识 3.新特性和后续版本迭代 4.jdk9的下载安装及环境变量配置 5.帮助文档和JEP_JSR概念 ...26.新特性18:Javascript的Nashorn引擎升级 27.新特性19:java的动态编译器 28.新特性的总结与展望

    java和java8特性功能.rar

    Java 8引入了许多新的功能和改进,包括Lambda表达式、接口默认方法、函数式接口、流API、Date/Time API、Nashorn JavaScript引擎等。这些新功能和改进使得Java编程变得更加简单、直观和高效,并提升了JVM的性能和...

    jdk8-112安装包.rar

    Java8 新增了非常多的特性,我们主要讨论以下几个: Lambda 表达式 − Lambda允许把函数...Nashorn, JavaScript 引擎 − Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用。

    mac os jdk8

    新特性 Java8 新增了非常多的特性,我们主要讨论以下几个: Lambda 表达式 − Lambda允许把...Nashorn, JavaScript 引擎 − Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用。

    Java 8 新特性.rar

    jdk1.8的新特性,包括Lambda 表达式,方法引用 默认方法,新工具,Stream API,Date Time API,Optional 类,Nashorn, JavaScript 引擎

    java8_64bit.zip

    加强了Lambda表达式,使成为java拥有最好编写的处理器代码,新的Nashorn引擎也能和JavaScript相互操作。 java8,64位特色说明: 带来一种新语言能将参数代码变为数据。 增加和修改了Java特性优化默认方法。 se平台...

    jdk1.8及安装教程

    本资源适用于初学者搭建java开发环境。 1.8是一个非常稳定、成熟和...5. Nashorn JavaScript 引擎 6. 类型注解 7. Optional 类 8. CompletableFuture 9. 新的工具 10. 改进的安全性能 11. 改进的集合库 12. 新的并发API

    jdk1.8 64位官方正式版(附安装文档)

    5、新的JavaScript引擎Nashorn 6、Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可。 7、新增lambda表达式 8、提供函数式接口 9、Java 8 允许你使用 :: 关键字来传递方法或者构造函数...

    Windows JDK8 官方版本

    JDK8.0是Java虚拟机的最新版本,加入了很多新的特性。Oracle甲骨文公司Oracle公司如期发布了Java 8正式版!现在你就可以下载Java 8正式版了,同期发布的还有JDK 8。... JavaFX更新文档 新的JavaScript引擎Nashorn

    jdk-11中文api修订版.zip

    Java 11 新特性 官网公开的 17 个 JEP(JDK Enhancement...335: Deprecate the Nashorn JavaScript Engine(弃用 Nashorn JavaScript 引擎) 336: Deprecate the Pack200 Tools and API(弃用 Pack200 工具及其 API)

    jdk1.8u144 官方版本windows

    JDK8.0是Java虚拟机的最新版本,加入了很多新的特性。Oracle甲骨文公司Oracle公司如期发布了Java 8正式版!现在你就可以下载Java 8正式版了,同期发布的还有JDK 8。JDK8的特性已经基本准备...新的JavaScript引擎Nashorn

    写给大忙人看的JAVA SE 8

    第7章 JavaScript引擎——Nashorn 146 7.1 从命令行运行Nashorn 148 7.2 从Java运行Nashorn 149 7.3 调用方法 150 7.4 构造对象 151 7.5 字符串 153 7.6 数字 153 7.7 使用数组 154 7.8 列表和映射 155 7.9 lambda...

Global site tag (gtag.js) - Google Analytics