JDK1.6加入了对Script(JSR223)的支持。这是一个脚本框架,提供了让脚本语言来访问Java内部的方法。你可以在运行的时候找到脚本引擎,然后调用这个引擎去执行脚本。这个脚本API允许你为脚本语言提供Java支持。另外,Web Scripting Framework允许脚本代码在任何的Servlet容器(例如Tomcat)中生成Web内容。
关于ScriptEngine和ScriptEngineManager的使用这里就不做过多的介绍了,请看下面的代码段:
/**
* 演示脚本语言如何使用JDK平台下的类,调用一个JDK平台的Swing窗口
*
* @param engine ScriptEngine实例
* @return void
* */
private static void testUsingJDKClasses(ScriptEngine engine) throws Exception {
// Packages是脚本语言里的一个全局变量,专用于访问JDK的package
String js = "function doSwing(t){var f=new Packages.javax.swing.JFrame(t);f.setSize(400,300);f.setVisible(true);}";
engine.eval(js);
// Invocable 接口: 允许java平台调用脚本程序中的函数或方法
Invocable inv = (Invocable) engine;
// invokeFunction()中的第一个参数就是被调用的脚本程序中的函数,第二个参数是传递给被调用函数的参数;
inv.invokeFunction("doSwing", "Scripting Swing");
}
下面的代码段演示脚本语言如何实现Java的接口
/**
* 演示脚本语言如何实现Java的接口,启动线程来运行script提供的方法
*
* @param engine ScriptEngine实例
* @return void
* */
private 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();
}
演示如何在Java中调用脚本语言的方法
/**
* 演示如何在Java中调用脚本语言的方法,通过JDK平台给script的方法中的形参赋值
*
* @param engine ScriptEngine实例
* @return void
* */
private static void testInvokeScriptMethod(ScriptEngine engine) throws Exception {
String script = "function helloFunction(name) { return 'Hello everybody,' + name;}";
engine.eval(script);
Invocable inv = (Invocable) engine;
String res = (String) inv.invokeFunction("helloFunction", "Scripting");
System.out.println("res:" + res);
}
演示如何暴露Java对象为脚本语言的全局变量
/**
* 演示如何暴露Java对象为脚本语言的全局变量,同时演示将File实例赋给脚本语言,并通过脚本语言取得它的各种属性值
*
* @param engine ScriptEngine实例
* @return void
* */
private static void testScriptVariables(ScriptEngine engine) throws ScriptException {
File file = new File("test.txt");
engine.put("f", file);
engine.eval("println('Total Space:'+f.getTotalSpace())");
engine.eval("println('Path:'+f.getPath())");
}
分享到:
相关推荐
- **改进的脚本支持**:添加了对JavaScript和其他脚本语言的支持。 **3. 安装与配置** - **下载**:从Oracle官网或其他可信源下载JDK 1.6的安装文件,如"jdk1.6.exe"。 - **安装**:双击执行安装文件,按照向导步骤...
5. **脚本引擎支持**:通过`javax.script`包支持脚本语言的嵌入式执行,方便开发者编写混合Java和其他脚本语言的应用程序。 ### 三、JDK1.6的下载与安装 #### 下载方式 - **官方渠道**:通常推荐从Oracle官方网站...
- **JSR 292**:支持动态语言,引入了invokedynamic指令,使得Java平台更适合脚本语言。 总的来说,JDK1.6是Java开发的重要里程碑,虽然现在已经有了更新的版本,但对于某些老项目或者特定环境,JDK1.6仍然是必要的...
7. **Scripting API**:通过`javax.script`包,Java 1.6开始支持脚本语言,如JavaScript,Rhino等,增强了Java的脚本引擎支持。 8. **改进的JMX(Java Management Extensions)**:提供了一套用于管理系统资源的...
7. **Scripting API**:JDK1.6引入了JSR 223,即脚本引擎API,允许开发者在Java程序中嵌入并执行JavaScript和其他脚本语言。 8. **XML处理**:JAXB(Java Architecture for XML Binding)和StAX(Streaming API for...
6. **脚本引擎支持**:JDK1.6开始支持JavaScript和其他脚本语言,通过JSR 223规范,可以在Java程序中嵌入和执行脚本代码。 7. **改进的垃圾收集器**:包括并行GC、CMS(Concurrent Mark Sweep)和G1(Garbage-First...
6. **Scripting API**:JSR 223引入了脚本引擎支持,允许在Java应用中执行JavaScript和其他脚本语言。 7. **改进的日志框架**:JDK 1.6的日志API进行了改进,提供了更强大的日志处理能力,可以方便地配置和管理日志...
7. **增强的脚本引擎**:JDK 1.6添加了对JavaScript(Rhino引擎)和其他脚本语言的支持,增强了Java平台的脚本编程能力。 8. **安全增强**:包括证书链验证的改进,增强了网络和应用程序的安全性。 9. **JMX (Java...
6. **改进的内存管理**:JVM在1.6版本中对垃圾收集进行了优化,如使用CMS(Concurrent Mark Sweep)收集器,减少了STW(Stop-the-World)时间,提升了应用响应速度。 7. **国际化改进**:增强了对多种语言和地区的...
- **动态语言支持**:JDK 1.6开始引入JSR 223(Scripting for the Java Platform),允许Java程序直接调用脚本语言,增强了Java的灵活性。 - **JDBC增强**:JDBC 4.0引入了自动连接管理和新的数据库元数据API,简化...
2. 动态语言支持:通过JSR 223,JDK 1.6增加了对动态语言的支持,允许Java平台更方便地运行脚本语言。 3. JAXB 2.1:提供了XML到Java对象的绑定,简化了XML处理。 4. NIO.2:引入了新的文件系统API,提供了异步I/O...
这个压缩包文件"jdk1.6-bin.zip"包含了JDK 1.6版本的二进制文件,适用于Linux操作系统,特别是64位系统。JDK 1.6,也被称为Java SE(标准版)6,发布于2006年,它在Java平台上具有里程碑式的意义,引入了许多新特性...
9. **脚本引擎支持:** JDK 1.6开始支持内置的JavaScript引擎Rhino,允许在Java应用程序中直接执行JavaScript代码。 10. **Javadoc和源码可用:** JDK 1.6包含了Javadoc文档和源码,便于开发者理解和学习。 虽然...
这一版本引入了许多新特性,如改进的动态代理、增强的Swing组件、新的脚本引擎支持以及对XML处理的优化。 在压缩包子文件的文件名称列表中,`jdk-6u43-windows-i586.exe`是32位版本的JDK安装程序,而`jdk-6u43-...
- **脚本语言支持**:通过JSR 223,JDK1.6支持了更多脚本语言,如JavaScript、Groovy等,可以在Java环境中执行。 总的来说,JDK1.6 64位是一个经典且稳定的选择,对于那些需要兼容旧系统的开发者来说,它是必不可少...
9. **脚本语言支持**:JDK 1.6通过JSR 223引入了对脚本语言的支持,允许Java应用程序直接运行JavaScript等脚本语言。 10. **改进的调试工具**:JDK自带的Java Debug Interface (JDI) 和Java VisualVM等工具得到了...
1. **动态语言支持**:JDK 1.6引入了JSR 223(Scripting for the Java Platform),使得在Java环境中可以方便地使用脚本语言,如JavaScript、Ruby等。 2. **改进的Swing组件**:Swing UI库得到增强,包括新的JTable...
改进的动态语言支持使得Java可以更好地处理脚本语言,如JavaScript和Ruby。另外,JDBC(Java Database Connectivity)API也得到了升级,增强了数据库连接的性能和稳定性。 在安全性方面,JDK 1.6加强了对网络通信的...
1. **动态语言支持**:JDK 1.6引入了JSR 223(Scripting for the Java Platform),为Java平台提供了对多种动态脚本语言的支持,如JavaScript、Ruby等。 2. **改进的Swing UI组件**:JDK 1.6更新了Swing组件,提供...
7. **脚本支持**:JDK 1.6添加了对脚本语言的支持,如JavaScript,通过JSR 223(Scripting for the Java Platform)实现。 8. **XML处理**:在`javax.xml`包下增加了一些新类,如`StAX` API,提供了更高效的XML解析...