原文链接: http://jnotnull.iteye.com/blog/262384
package com.lch.js;
import java.io.File;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class HelloWorld {
/**
* @param args
* @throws ScriptException
* @throws NoSuchMethodException
*/
public static void main(String[] args) throws Exception {
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("javascript");
//engine.eval("print('hello')");
//testScriptVariables(engine);//演示如何暴露JAVA对象为脚本语言的全局对象
//testInvokeScriptMethod(engine);//演示JAVA中如何调用脚本语言
//testScriptInterface(engine);//演示脚本语言如何实现JAVA接口
testUsingJDKClasses(engine);//演示脚本如何使用JDK平台下的类
}
public static void testScriptVariables(ScriptEngine engine) throws ScriptException{
File file = new File("test.txt");
engine.put("f", file);
engine.eval("println('otal space: ' + f.getTotalSpace())");
}
public static void testInvokeScriptMethod(ScriptEngine engine) throws ScriptException, NoSuchMethodException{
String script = "function hello(name) {return 'hello ' + name;}";
engine.eval(script);
Invocable inv = (Invocable)engine;
String res = (String)inv.invokeFunction("hello", "Scripting");
System.out.println("res : " + res);
}
public static void testScriptInterface(ScriptEngine engine) throws ScriptException{
String script = "var obj = new Object(); obj.run = function(){ println('run method called');}";
engine.eval(script);
Object obj = engine.get("obj");
Invocable inv = (Invocable)engine;
Runnable r = inv.getInterface(obj, Runnable.class);
Thread th = new Thread(r);
th.start();
}
public static void testUsingJDKClasses(ScriptEngine engine) throws ScriptException, NoSuchMethodException{
String js = "function doSwing(t){var f = new Packages.javax.swing.JFrame(t); f.setSize(400, 300); f.setVisible(true);}";
engine.eval(js);
Invocable inv = (Invocable)engine;
inv.invokeFunction("doSwing", "Scripting Swing");
}
}
分享到:
相关推荐
JDK JavaScript 独立运行时 Nashorn,Java 7 可用。比 Rhino 更快,更好用
压缩包里面包括了jdk1.8,jdk1.9的API中文参考文档以及jQuery1.7.2和JavaScript中文参考文档
* 在Java中使用脚本语言JavaScript。 * * @author LeiWen@FansUnion.cn,http://FansUnion.cn, * http://blog.csdn.net/FansUnion * * QQ:240370818 参考资料:...
比较详细的介绍了jdk1.6对脚本语言的支持(以javascript为例)
4、Date/Time API:Java 8中引入了新的Date/Time API,它提供了一组强大的日期和时间处理工具,包括时区和夏令时的支持。 5、Nashorn引擎:Java 8中引入了一个新的JavaScript引擎,称为Nashorn。它比原来的...
Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。
Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。
332: Transport Layer Security (TLS) 1.3(对 TLS 1.3 的支持) 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)(ZGC:可伸缩的低延迟垃圾回收器,处于实验性阶段) 335: Deprecate the ...
oracle的JDK8 Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。
Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。
Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。
对脚本语言的支持(如:ruby,groovy,javascript) Common Annotations ———————————————— 版权声明:本文为CSDN博主「念念就忘」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及...
Play Framework JDK8 上的 React.js 附带一个 JavaScript 运行时:Nashorn React 通过 React.renderToString 支持服务器端渲染。 Play 框架是一个在 JVM 上运行的 Web 框架。结合这些功能,Play 可以使用发送到...
Oracle公司于2014年3月18日发布,它支持函数式编程,新的JavaScript引擎,新的日期API,新的Stream API等。 新特性 JDK1.8新特性 *支持Lambda表达式 *函数式接口 *方法引用与构造器引用 *新的Stream API
332: Transport Layer Security (TLS) 1.3(对 TLS 1.3 的支持) 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)(ZGC:可伸缩的低延迟垃圾回收器,处于实验性阶段) 335: Deprecate the ...
Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。
JAVA 8是JAVA编程语言开发的一个主要特性版本。它的最初版本于2014年3月18日发布。随着Java 8的发布,Java提供了对函数式编程的支持,新的JavaScript引擎,用于日期时间操作的新API,新的流媒体API,等等。
Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。这是window32位的。
Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。
Oracle公司于2014年3月18日发布,它支持函数式编程,新的JavaScript引擎,新的日期API,新的Stream API等。 新特性 JDK1.8新特性 *支持Lambda表达式 *函数式接口 *方法引用与构造器引用 *新的Stream API