博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java Nashorn--Part 2
阅读量:6616 次
发布时间:2019-06-24

本文共 1692 字,大约阅读时间需要 5 分钟。

在命令行中执行 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> jjsjjs> 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;@75f9ecccjjs> print(myNums[0]);a

注意:

当我们打印 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-Xmx4gjjs> java.lang.Runtime.getRuntime().maxMemory()3817799680
  • -strict:使所有的脚本和函数中运行的 JavaScript 的严格模式。这是 JavaScript 的一个特性,是在 ECMAScript 第五个版本引入的这一特征,目的是减少缺陷和错误。严格模式建议在 JavaScript 中新的开发项目中使用,如果你不熟悉它,你应该阅读它。
  • -D:允许开发人员通过键值对作为系统属性传递给 Nashorn,在通常的方式下为 JVM 使用。 举例:
$ jjs –DmyKey=myValuejjs> java.lang.System.getProperty("myKey");myValue
  • v(-version):Nashorn 的系统版本号。通常等同于 JDK 的版本。
PS C:\Users\TurtusLi> jjs -vNashorn 1.8.0_102
  • -fv(-fullversion):Nashorn 的详细的系统版本号。
PS C:\Users\TurtusLi> jjs -fullversionnashorn full version 1.8.0_102-b14
  • -fx: 作为一个 JavaFX GUI 应用程序执行脚本。这允许 JavaFX 程序员利用 Nashorn 少写很多样板。
  • -h:列出帮助信息。
  • -scripting:开启 Nashorn 规范的脚本扩展功能。

转载地址:http://xghso.baihongyu.com/

你可能感兴趣的文章
第 8 章 Spring Data
查看>>
[裴礼文数学分析中的典型问题与方法习题参考解答]5.1.24
查看>>
8.5. profile
查看>>
C语言 编程练习22题
查看>>
Log4Net 生成多个文件、文件名累加解决方法
查看>>
oracle 包,函数,过程,块的创建和执行及在java中执行(转)
查看>>
CloudDBA现场助力双十一
查看>>
虚拟现实技术或会产生副作用
查看>>
【云图】如何设置微信里的全国实体店地图?
查看>>
db file async I/O submit 等待事件优化
查看>>
前端需要了解的 SSO 与 CAS 知识
查看>>
李开复谈未来工作:虽然会被AI取代,但谁说人类非得工作不可?
查看>>
PostgreSQL 空间切割(st_split)功能扩展 - 空间对象网格化
查看>>
Intercom的持续部署实践:一天部署100次,1次10分钟
查看>>
SpringBoot权限控制
查看>>
阿里云中间件技术 促进互联网高速发展
查看>>
智能时代悄然到来 物联网称王将引爆传感器产业
查看>>
物理隔离计算机被USB蜜蜂刺破 数据通过无线信号泄露
查看>>
利用一点机器学习来加速你的网站
查看>>
中国域名现状:应用水平较低,安全仍存隐患
查看>>