`
elan1986
  • 浏览: 168086 次
  • 性别: 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");
	}
}
分享到:
评论

相关推荐

    jdk6免安装下载 免费下载

    5. **脚本语言支持**:JDK6通过JSR 223引入了对JavaScript和其他脚本语言的支持,使得Java平台可以嵌入和执行脚本代码。 接下来,我们来看看压缩包中包含的文件及其作用: 1. **COPYRIGHT**:包含了Oracle公司的...

    Jdk6解压打包版本

    10. **脚本语言支持**:通过`ScriptEngine`接口,JDK 6支持JavaScript和其他脚本语言,使得Java应用可以嵌入和执行脚本代码。 以上只是JDK 6中一部分重要改进和新特性,这些知识点对于理解和使用JDK 6进行开发至关...

    JDK JavaScript 独立运行时 Nashorn,Java 7 可用

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

    JDK6 免安装版

    9. **JavaScript支持**:通过Rhino JavaScript引擎,可以在Java代码中直接执行JavaScript。 10. **改进的内存管理**:包括更高效的垃圾回收器和内存分配策略,提高了整体性能。 配置JDK6免安装版的步骤如下: 1. ...

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

    另外,还新增了 Stream API,用于处理集合数据,支持并行流,提高了数据处理的性能。另外,Date/Time API也得到了显著改进,引入了`java.time`包,提供更加易用且功能丰富的日期和时间处理类。 JDK 1.9 中,模块化...

    jdk6 windows 32位.rar

    对于开发者来说,JDK 6提供了许多新特性,如增强的Swing组件、改进的JDBC API、新的脚本引擎支持(如JavaScript引擎Nashorn)以及对XML处理的优化等。 描述中提到的"jdk-6u39-windows-x32.exe"是JDK 6更新39...

    Jdk6 for mac

    - **JavaScript 交互**:通过 JAXP 和 Rhino 引擎,JDK 6 支持与 JavaScript 代码的交互。 3. **开发工具**: - **Javac**:Java 编译器,将源代码编译成字节码。 - **Java**:执行已编译的 Java 类文件。 - **...

    java jdk6 32位

    - **Nashorn JavaScript引擎**:虽然在JDK 6中未完全实现,但JDK 7开始引入了Nashorn JavaScript引擎,为Java与JavaScript的交互提供了更高效的方式。 - **改进的Swing和JavaFX**:UI组件得到了增强,包括更好的...

    jdk6中文版

    3. **改进的Swing UI**:JDK 6对Swing组件进行了升级,提供了更好的外观和感觉,同时增加了新的组件和功能,如JTabbedPane的改进,以及JTable的性能提升。 4. **NIO.2**:Java.nio包的扩展,引入了JSR 203(New I/O...

    jdk6的支持文档

    1. **增强的Swing组件**:JDK 6对Swing组件进行了更新,提供了更好的用户体验和更丰富的图形用户界面(GUI)设计。例如,`JTable`和`JTree`组件得到了改进,增加了表格模型的性能,以及对行和列选择的支持。 2. **...

    jdk6和jdk8 64位 亲测 没有问题

    1. **泛型的增强**:JDK6对泛型的支持更加完善,允许类型推断,使得代码更简洁,减少类型转换的错误。 2. **改进的Swing组件**:Swing库得到了大量更新,提供了更好的GUI设计和用户体验。 3. **脚本语言支持**:通过...

    jdk6 64位安装包资源.

    10. **改进的垃圾回收 (GC)**:JDK6对垃圾回收算法进行了优化,提升了整体性能。 ### 安装 JDK6 64位 下载的 `jdk-6-windows-x64.exe` 文件是适用于 Windows 操作系统的 64 位 JDK6 安装程序。安装过程中,通常会...

    jdk6 windows 64位

    JDK6对于Java开发者来说是一个重要的版本,它引入的许多特性对后续版本产生了深远影响,并且至今仍有一些项目依赖于JDK6的特性。然而,由于安全性、性能和兼容性等方面的原因,现在推荐使用更新的JDK版本,如JDK 8、...

    jdk6绿色免安装版

    3. **增强的Swing**:JDK 6对Swing组件进行了大量优化,包括更好的UI外观、性能提升和新的组件如JTabbedPane等。 4. **NIO.2**:引入了新的文件系统API,增强了非阻塞I/O操作的能力,如文件通道和异步文件操作。 5...

    JDK 6 中文帮助文档

    1. **泛型改进**:JDK 6对泛型进行了增强,支持类型推断,使得开发者在编写代码时可以更少地显式指定类型参数,提高代码的可读性。此外,通配符的使用也更加灵活,增强了泛型在多态场景下的应用。 2. **枚举与注解*...

    jdk6\jdk7_linux_64

    这个版本引入了对JSR 223(脚本引擎)的支持,允许Java应用程序利用JavaScript和其他脚本语言。此外,JDBC 4.0的引入改进了数据库连接的处理,增强了XML处理,并添加了Swing组件的新功能,如JTable的改进和...

    JDK6免安装解压包

    8. **脚本语言支持**:JDK6引入了JSR 223,允许Java平台集成其他脚本语言,如JavaScript、Groovy等。 **解压和配置步骤** 1. **下载与解压**:首先从可靠的源下载JDK6的免安装解压包,然后选择一个合适的本地目录...

    jdk 6u5 for windows

    JDK 6包含了一些重要的新特性,例如改进的Swing UI组件、内置的XML处理库(如StAX)、新的脚本引擎支持(如JavaScript via Rhino)以及增强的调试工具。此外,JDK 6还引入了新的编程语言特性,如枚举类型的foreach...

    JDK6 Linux64位rpm版本

    6. **NIO.2(New I/O API)**:增加了对异步I/O的支持,提高了文件操作性能。 7. **Scripting API**:允许在Java应用中使用脚本语言,如JavaScript。 8. **改进的XML支持**:增强了DOM、SAX和StAX解析器,提升了处理...

    jdk-6u43-windows-x64 64位

    1. **增强的性能**:JDK 6对虚拟机(JVM)进行了优化,提高了运行效率,使得应用程序的执行速度更快,内存管理更加高效。 2. **改进的开发工具**:Java编译器(javac)得到了升级,支持更多的语法糖,如枚举类型、...

Global site tag (gtag.js) - Google Analytics