Java 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
注意:
当我们打印 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 规范的脚本扩展功能。
Java Nashorn--Part 2的更多相关文章
- Java 7 可执行的 Nashorn,取代 Rhino
惊现有人把 OpenJDK 上的 Nashorn dump 下来,使得 Java 7 都能够使用.源代码在 https://bitbucket.org/ramonza/nashorn-backport ...
- Learning Java 8 Syntax (Java in a Nutshell 6th)
Java is using Unicode set Java is case sensitive Comments, C/C++ style abstract, const, final, int, ...
- Atitit。Js调用后台语言 java c# php swing android swt的方法大总结
Atitit.Js调用后台语言 java c# php swing android swt的方法大总结 1. Js调用后台语言有三种方法1 2. Swt BrowserFunction 绑定方法 ...
- JS代码检查工具ESLint
前面的话 ESLint是一个JavaScript代码静态检查工具,可以检查JavaScript的语法错误,提示潜在的bug,可以有效提高代码质量,维持前端团队高度一致的编码风格.ESLint不但提供一 ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- Java 8 的 Nashorn 脚本引擎教程
本文为了解所有关于 Nashorn JavaScript 引擎易于理解的代码例子. Nashorn JavaScript 引擎是Java SE 8的一部分,它与其它像Google V8 (它是Goog ...
- Nashorn 在JDK 8中融合Java与JavaScript之力
从JDK 6开始,Java就已经捆绑了JavaScript引擎,该引擎基于Mozilla的Rhino.该特性允许开发人员将JavaScript代码嵌入到Java中,甚至从嵌入的JavaScript中调 ...
- Nashorn——在JDK 8中融合Java与JavaScript之力
从JDK 6开始,Java就已经捆绑了JavaScript引擎,该引擎基于Mozilla的Rhino.该特性允许开发人员将JavaScript代码嵌入到Java中,甚至从嵌入的JavaScript ...
- java 11 移除的一些其他内容,更简化的编译运行程序,Unicode 10,移除了不太使用的JavaEE模块和CORBA技术,废除Nashorn javascript引擎,不建议使用Pack200 相关api
移除的一些其他内容 移除项 移除了com.sun.awt.AWTUtilities 移除了sun.misc.Unsafe.defineClass, 使用java.lang.invoke.MethodH ...
- Java 8 Nashorn JavaScript
转自:https://www.runoob.com/java/java8-nashorn-javascript.html Nashorn 一个 javascript 引擎. 从JDK 1.8开始,Na ...
随机推荐
- hdu 1728 逃离迷宫 bfs记转向
题链:http://acm.hdu.edu.cn/showproblem.php?pid=1728 逃离迷宫 Time Limit: 1000/1000 MS (Java/Others) Mem ...
- C# 动态解析表达式
需求 我们很难捉摸用户的思维,即使使用非常正式的文档规范某些数据的定义.结果的标准等,也不能抵挡住用户不断变化的需求,但他们有个万变不离的东西——你做这个东西要是万能的,即输入参数类型.个数等发生改变 ...
- Windows 服务安装教程
一.安装服务1.已管理员的身份启动CMD2.输入 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 回车3.输入 InstallUtil.exe Win ...
- uni/微信小程序 - 使用字体图标
阿里字体图标:http://www.iconfont.cn/home/index?spm=a313x.7781069.1998910419.2 1.单个/ 多个选择字体图标 2. 导入字体库 可以参考 ...
- 微软BI 之SSRS 系列 - 报表中分组聚合中处理不规则层次结构的技巧(没有子元素的时候不展开, 删除+符号)
分组聚合的展开和收起效果在SSRS Report中非常常用,并且有时还要处理一些比较特别的情况.比如分组合并时有的层次结构是不规则的,有的组有两层,遇到这种情况应该如何处理? 注意到下面的这个需求 ...
- tornado url配置
Note tornado是支持虚拟主机的,在同一端口上根据域名区分app http://www.tornadoweb.org/en/stable/web.html#application-config ...
- Ajax的优缺点及工作原理?
定义和用法: AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).Ajax 是一种用于创建快速动态网页的技术.Ajax 是一种在无 ...
- ibatis中#和$如何当作字符使用?
1.情景展示 在plsql中,可以正常执行 但是在ibatis的sqlMap文件中,报错信息如下: 2.原因分析 ibatis中 #.$ 是功能符号,用来取值的,当sql中出现这类字符时便会造成冲 ...
- HTML注释标签
CreateTime--2016年11月4日08:46:25Author:Marydon参考链接--http://www.cnblogs.com/KeepMovingblog/archive/20 ...
- Linux管道思想
1.Linux管道 {{book | upper |lower | capfirst}} 含义:就是把前一个命令的结果当成后一个命令的输入.然后在下一个管道中输出满足条件的数据,如此继续数据的流向运动 ...