java8 nashorn,Java8 JavaScript Nashorn

Java8 JavaScript Nashorn

1 Java8 JavaScript Nashorn的介绍

Nashorn是JavaScript引擎。它用于在JVM(Java虚拟机)上动态执行JavaScript代码。Java提供了用于执行JavaScript代码的命令行工具jjs。

您可以通过使用jjs命令行工具并嵌入到Java源代码中来执行JavaScript代码。

2 案例:使用终端执行

以下是在JVM中执行JavaScript代码的分步过程。

1)创建一个文件hello.js。

2)编写以下代码并将其保存到文件中。

var hello = function(){

print("Hello Nashorn");

};

hello();

3)打开终端

4)编写命令jjs hello.js,然后按Enter。

执行命令后,您将看到以下输出。

Hello Nashorn

3 案例:Java代码执行JavaScript文件

您可以直接从Java文件执行JavaScript文件。在以下代码中,我们将在FileReader类的帮助下读取文件hello.js。

/**

* 一点教程网: http://www.yiidian.com

*/

import javax.script.*;

import java.io.*;

public class NashornExample {

public static void main(String[] args) throws Exception{

// Creating script engine

ScriptEngine ee = new ScriptEngineManager().getEngineByName("Nashorn");

// Reading Nashorn file

ee.eval(new FileReader("js/hello.js"));

}

}

输出结果为:

Hello Nashorn

4 案例:Java源代码嵌入JavaScript代码

您可以将JavaScript代码嵌入Java源文件中。Java编译器不会抱怨,但是当您拥有大量源代码时,这不是一个好习惯。在以下示例中,我们正在评估JavaScript代码。

/**

* 一点教程网: http://www.yiidian.com

*/

import javax.script.*;

public class NashornExample {

public static void main(String[] args) throws Exception{

// Creating script engine

ScriptEngine ee = new ScriptEngineManager().getEngineByName("Nashorn");

// Evaluating Nashorn code

ee.eval("print('Hello Nashorn');");

}

}

输出结果为:

Hello Nashorn

5 案例:嵌入JavaScript表达式

您可以在JavaScript代码中嵌入JavaScript表达式和变量。在以下代码中,我们将变量嵌入到字符串中。要执行此程序,您需要在命令行中传递标志-scripting。

文件: hello.js

var hello = function(msg){

print("Hello ${msg}");

};

hello("Nashron");

命令: jjs -scripting hello.js

输入结果为:

Hello Nashorn

6 案例:JavaScript文件的heredocs

在Nashorn中,heredocs只是多行字符串。您可以在<

文件: hello.js

var message = <

This is a java script file

it contains multiple lines

of code.

let's execute.

EOF

print(message)

命令: jjs -scripting hello.js

输入结果为:

This is a java script file

it contains multiple lines

of code.

let's execute.

7 案例:Java文件中设置JavaScript变量

您可以将值传递给Java文件中的JavaScript变量。在下面的示例中,我们将变量绑定并传递到JavaScript文件。

文件: hello.js

print("Hello "+name);

文件: NashornExample.java

/**

* 一点教程网: http://www.yiidian.com

*/

import javax.script.*;

import java.io.*;

public class NashornExample {

public static void main(String[] args) throws Exception{

// Creating script engine

ScriptEngine ee = new ScriptEngineManager().getEngineByName("Nashorn");

//Binding script and Define scope of script

Bindings bind = ee.getBindings(ScriptContext.ENGINE_SCOPE);

bind.put("name", "Nashorn");

// Reading Nashorn file

ee.eval(new FileReader("js/hello.js"));

}

}

输出结果为:

Hello Nashorn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值