`
elan1986
  • 浏览: 164870 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jdk6 对 javascript 的支持

阅读更多
原文链接: 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 可用

    JDK JavaScript 独立运行时 Nashorn,Java 7 可用。比 Rhino 更快,更好用

    jdk1.8 jdk1.9 jQuery JavaScript API参考文档

    压缩包里面包括了jdk1.8,jdk1.9的API中文参考文档以及jQuery1.7.2和JavaScript中文参考文档

    在Java中使用脚本语言JavaScript

    * 在Java中使用脚本语言JavaScript。 * * @author LeiWen@FansUnion.cn,http://FansUnion.cn, * http://blog.csdn.net/FansUnion * * QQ:240370818 参考资料:...

    java对javascript的支持

    比较详细的介绍了jdk1.6对脚本语言的支持(以javascript为例)

    jdk1.8windows免安装版本

    4、Date/Time API:Java 8中引入了新的Date/Time API,它提供了一组强大的日期和时间处理工具,包括时区和夏令时的支持。 5、Nashorn引擎:Java 8中引入了一个新的JavaScript引擎,称为Nashorn。它比原来的...

    jdk-8(8u371 windowsx86、x64版)

    Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。

    jdk1.8 linux版本

    Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。

    Java 11 / JDK 11 下载

    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 .rar

    oracle的JDK8 Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。

    jdk1.8版本安装包

    Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。

    jdk-8(8u261 windowsx86、x64版)

    Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。

    JDK 6.2.3文文档.rar

    对脚本语言的支持(如:ruby,groovy,javascript) Common Annotations ———————————————— 版权声明:本文为CSDN博主「念念就忘」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及...

    使用 JDK8 的 JavaScript 引擎在 Play 框架中渲染 React 组件

    Play Framework JDK8 上的 React.js 附带一个 JavaScript 运行时:Nashorn React 通过 React.renderToString 支持服务器端渲染。 Play 框架是一个在 JVM 上运行的 Web 框架。结合这些功能,Play 可以使用发送到...

    JDK1.8 - windows版本,又称之为Java 8

    Oracle公司于2014年3月18日发布,它支持函数式编程,新的JavaScript引擎,新的日期API,新的Stream API等。 新特性 JDK1.8新特性 *支持Lambda表达式 *函数式接口 *方法引用与构造器引用 *新的Stream API

    jdk-11中文api修订版.zip

    332: Transport Layer Security (TLS) 1.3(对 TLS 1.3 的支持) 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)(ZGC:可伸缩的低延迟垃圾回收器,处于实验性阶段) 335: Deprecate the ...

    jdk-8(8u333 linux-x64-rpm版)

    Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。

    jdk-8u333-windows-x64

    JAVA 8是JAVA编程语言开发的一个主要特性版本。它的最初版本于2014年3月18日发布。随着Java 8的发布,Java提供了对函数式编程的支持,新的JavaScript引擎,用于日期时间操作的新API,新的流媒体API,等等。

    jdk-8u201-windows-i586.exe

    Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。这是window32位的。

    jdk1.8.rar

    Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。

    java - jdk 1.8 - linux版

    Oracle公司于2014年3月18日发布,它支持函数式编程,新的JavaScript引擎,新的日期API,新的Stream API等。 新特性 JDK1.8新特性 *支持Lambda表达式 *函数式接口 *方法引用与构造器引用 *新的Stream API

Global site tag (gtag.js) - Google Analytics