ECMAScriptJava Nashorn–Part 2

在指令行中执行 JavaScript

当今我们有一个 my_script.js 文件,想在 Nashorn
下实施,则需要在指令行下执行该命令:
jrunscript my_script.js

jrunscript 还是可以够指定指定除了 Nashorn 以外的引擎,这里需要利用 -l
来显示指定:
jrunscript –l nashorn my_script.js

注意:
在 jrunscript
命令里,甚至足以实施其余的脚本语言,只要提供适当可用的剧本引擎。

jrunscript 提供了一些简单易行有限的职能,假如需要更多的功用,可以行使 jjs
命令。

使用Nashorn shell

Nashorn 中的 shell 命令是 jjs,它可以用来交互或非交互的条件中,用来代表
jrunscript。
大家先来演示最简便的例子(在指令行下):

PS C:\Users\TurtusLi> jjs
jjs> print("Hello, World!");
Hello, World!
jjs>

Nashorn 在 shell 下可以轻松地与 Java
保持互操作性。我们可以直接通过拔取完全限定类名,从 JavaScript 访问 Jav
a的类和章程。下边是一个拜访 Java 内置的正则表达式的事例:

jjs> var pattern = java.util.regex.Pattern.compile("\\d+");
jjs> var myNums = pattern.split("a1b2c3d4e5f6");
jjs> print(myNums);
[Ljava.lang.String;@75f9eccc
jjs> print(myNums[0]);
a

ECMAScript,注意:
当我们打印 myNums 那些 JavaScript
变量时,大家得到结果是[Ljava.lang.String;@75f9ecc,固然在一个
JavaScript 变量,代表 myNums 真的是一个 Java 字符串数组。
下边介绍一下 jjs 命令的实际用法。
jjs [<options>] <files> [-- <arguments>]
以及常用选项的含义。

  • -cp(-classpath):指定 Java 的 classpath。
  • -doe(-dump-on-error):当 Nashorn 被迫退出时发出完全的失实转储。
  • -J:这么些选项是传递给 JVM 用的。例如,假诺我们想要增加 JVM
    最大可用内存:

    $ jjs -J-Xmx4g
    jjs> java.lang.Runtime.getRuntime().maxMemory()
    3817799680
    
  • -strict:使拥有的剧本和函数中运行的 JavaScript 的严俊格局。这是
    JavaScript 的一个表征,是在 ECMAScript
    第六个版本引入的这一特点,目的是减掉缺陷和谬误。严刻形式指出在
    JavaScript 中新的开发品种中运用,尽管您不熟稔它,你应该阅读它。

  • -D:允许开发人员通过键值对作为系统特性传递给
    Nashorn,在一般的格局下为 JVM 使用。 举例:

    $ jjs –DmyKey=myValue
    jjs> java.lang.System.getProperty("myKey");
    myValue
    
  • v(-version):Nashorn 的系统版本号。平常等同于 JDK 的本子。

    PS C:\Users\TurtusLi> jjs -v
    Nashorn 1.8.0_102
    
  • -fv(-fullversion):Nashorn 的事无巨细的系统版本号。

    PS C:\Users\TurtusLi> jjs -fullversion
    nashorn full version 1.8.0_102-b14
    
  • -fx: 作为一个 JavaFX GUI 应用程序执行脚本。这允许 JavaFX 程序员利用
    Nashorn 少写过多典范。

  • -h:列出援救信息。
  • -scripting:开启 Nashorn 规范的台本扩张效率。