概述:
JDK6.0中对Script语言的支持,默认支持javascript,从而使得开发变的简洁,适用场景如下:
有个业务逻辑处理,需要根据提供的工资,然后计算出应缴的税,2009年假定为(工资-800)*20%为上缴的税
采用java实现的方式如下:
public double geTax(double salary){ Return (salary-800)*0.2; }
到2010年发生了变化,变为(工资-2000)*20%为上缴的税
修改代码,重启服务,代码如下:
public double geTax(double salary){ Return (salary-3000)*0.2; }
然后又发生了变化......,
针对此类可以通过javascript进行实现,从而实现热部署。
调用脚本步骤:
Step1.创建ScriptEngineManager
ScriptEngineManager sem = new ScriptEngineManager();
Step2.根据ScriptEngineManager创建ScriptEngine
ScriptEngine engine = sem.getEngineByName("ECMAScript");
Step3.通过ScriptEngine加载脚本
engine.eval(scriptStr);
Step4.脚本的调用执行
//执行方法的采用Invocable
//执行内置对象的需要先获取内置对象然后调用callMethod进行执行
调用脚本中的对象方法:
定义脚本如下:F:\script\oo.js
function Person(name) { this.name = name; }; Person.prototype.say = function(str) { return this.name+" can say :"+str; };
Java中调用:
String filepath = "F:/script/oo.js"; File file = new File(filepath); FileReader scriptReader = new FileReader(file); ScriptEngineManager sem = new ScriptEngineManager();// ScriptEngine engine = sem.getEngineByName("ECMAScript"); engine.eval(scriptReader); Invocable inv = (Invocable) engine; Object obj = inv.invokeMethod(engine.eval("new Person('baidu');"), "say", "www.someabcd.com 是个好网站!"); System.out.println(obj);
调用脚本中的方法:
1.定义脚本如下:
F:\script\fun.js function getMax(a, b){ return a>b?a:b; }
2.Java中调用:
String filepath = "F:/script/fn.js"; File file = new File(filepath); FileReader scriptReader = new FileReader(file); ScriptEngineManager sem = new ScriptEngineManager();// ScriptEngine engine = sem.getEngineByName("ECMAScript"); engine.eval(scriptReader); Invocable inv = (Invocable) engine; Object obj = inv.invokeFunction("getMax", 100, 101); System.out.println(String.format("the max value is:%s", obj));
调用脚本中的内置对象:
1.定义脚本如下: F:\script\reg_exp.js
var reg = new RegExp("a+b");
2.Java中调用:
String filepath = "F:/script/reg_exp.js"; File file = new File(filepath); FileReader scriptReader = new FileReader(file); ScriptEngineManager sem = new ScriptEngineManager(); ScriptEngine engine = sem.getEngineByName("ECMAScript"); engine.eval(scriptReader); NativeRegExp nre = (NativeRegExp) engine.get("reg"); String input = "aaaaaaaaaaaab"; Object result = NativeRegExp.callMethod(nre, "test", new Object[] {input }); System.out.println(String.format("call regular expression:%s input:%s output :%s", nre.toString(), input, result));
相关推荐
1. **改进的Swing组件**:JDK 6.0对Swing UI库进行了增强,提供了更好的外观和感觉,支持更多的操作系统主题,并且增强了性能。 2. **JavaScript交互**:通过Java Web Start和Nashorn JavaScript引擎,JDK 6允许...
中文版的JDK6.0旨在为中文使用者提供更友好的体验,使开发者更容易理解和使用Java API。 **1. JDK6.0的主要特性:** - **增强的动态代理:** JDK 6.0引入了改进的动态代理机制,允许开发者创建能够处理多个接口的...
此外,IDE如Eclipse和IntelliJ IDEA等也提供了对JDK6.0的支持,使得开发过程更为便捷。 深入JDK6.0的源码,我们可以看到Java核心库的实现细节,如集合框架、多线程、I/O流等。例如,HashMap和ArrayList的内部结构,...
这份"jdk6.0中文文档"是针对JDK 6.0的官方帮助文档,它提供详尽的API参考、教程和指导,对于理解和使用JDK 6.0至关重要。 **一、JDK 6.0的主要特性** 1. **增强的Swing组件**:JDK 6.0在Swing UI库中进行了大量...
这个压缩包中包含的"java学习笔记JDK6课件和课本代码"是学习JDK 6.0的重要参考资料,可以帮助你深入理解Java编程的核心概念和实践技巧。 1. **Java基础**:Java是一种面向对象的编程语言,它的基础包括类、对象、...
4. **Swing组件增强**:JDK 6.0对Swing组件进行了一些改进,如JTable性能优化,以及对 Nimbus Look and Feel 的支持。 5. **NIO.2(New I/O 2)**:引入了新的文件系统API,提供异步I/O操作,如...
在JDK 6.0中,还引入了一些其他重要特性,例如改进的Swing GUI组件,包括更好的外观和感觉,以及对桌面应用的支持。新的I/O流API扩展了NIO(非阻塞I/O),使得处理大量并发I/O操作更加高效。此外,改进的异常处理...
jdk 6.0 API Document 文档,jdk 6.0 API Document 文档,jdk 6.0 API Document 文档,jdk 6.0 API Document 文档,jdk 6.0 API Document 文档,jdk 6.0 API Document 文档
JDK6.0 是 Oracle 公司发布的一个版本,提供了对 Java SE 6 平台的支持。以下是安装和配置 JDK6.0 的步骤: 1. **下载 JDK**: 首先,你需要从 Oracle 官方网站或可靠的第三方资源下载 JDK6.0 的安装包。 2. **安装 ...
JDK 6.0 API 文档是Java开发者的重要参考资料,它包含了Java开发工具包的所有公开接口、类和方法的详细说明。这份文档是理解和利用Java 6平台功能的基础,为程序员提供了全面的类库信息,使得开发过程更加高效且有据...
### JDK 6.0 的安装与配置详解 #### 一、安装 JDK 6.0 在开始之前,确保已经从官方渠道下载了适用于您操作系统的 JDK 6.0 安装包。对于 Windows 用户,推荐下载针对 Windows 环境的安装包。例如,对于 32 位操作...
JDK 6.0对国际化和本地化支持进行了增强,包括日期、时间、货币格式的改进,以及对更多语言和地区的支持,使得开发多语言应用更为简便。 十、诊断和监控工具 JDK 6.0提供了丰富的诊断和监控工具,如jconsole、...
jdk6.0中文版jdk。不错的开发者文档!希望你能喜欢!
### JDK 6.0环境变量设置详解 #### 安装JDK 6.0 在开始设置环境变量之前,首先需要正确安装JDK 6.0。安装过程并不复杂,但选择合适的安装路径至关重要,避免将JDK安装在默认的`C:\Program Files\`目录下,因为该...
JDK 6.0 Documentation 中文文档 CHM 从网上找到的,如果不对请见谅哈,小弟不敢独享,初来乍到,大家多包涵
JDK 6.0包含了对XPath 2.0和XSLT 2.0的支持,方便XML数据的查询和转换。 10. **JDBC 4.0** JDBC 4.0在JDK 6.0中发布,引入了自动连接管理和新的Java类型映射,提高了数据库访问的便利性。 以上只是JDK 6.0中的一...
JDK 6.0 API 文档是Java开发者的重要参考资料,它包含了Java平台标准版6.0的所有公共类、接口、方法和异常的详细说明。这个文档以HTML形式提供,便于用户在线浏览和查询,确保了程序员在开发过程中能够快速、准确地...
《Java JDK6.0 API参考手册》是Java开发工程师的重要参考资料,它详尽地阐述了JDK6.0版本中的各种API(Application Programming Interface)功能和用法。这份手册以中文呈现,旨在帮助国内开发者更好地理解和应用...
JDK 6.0 API 中文版 开发新手的必备 , 绝对完美的中文版
5. **JavaScript集成(Scripting Engines)**:JDK 6.0添加了对脚本语言的支持,如JavaScript引擎Rhino,使得在Java应用中可以嵌入和执行JavaScript代码。 6. **JDBC 4.0**:更新了Java数据库连接API,增加了自动...