1 Java脚本引擎简介:
2 使用Rhino 让Java和JS相互操作:
java : public class Demo02 { public static void main(String[] args) throws Exception { //获得脚本引擎 ScriptEngineManager sem = new ScriptEngineManager(); ScriptEngine engine = sem.getEngineByName("javascript"); //定义变量 engine.put("msg", "zm is not a good man!");// 向引擎上下文中定义一个变量, 这样java js都可以从中获取 String str = "var user = {name:'zm',age:30,schools:['北理工','iteye']}; "; str += "println(user.name);"; //执行脚本 engine.eval(str); // 通过脚本获取 结果---> zm engine.eval("msg='zm is a old man';"); // 修改变量 msg的值 System.out.println(engine.get("msg")); // 通过Java端代码获取值 结果---> zm is a old man System.out.println("########################"); // 定义函数 engine.eval("function add (a, b) {var sum = a + b; return sum; }"); // 取得调用接口 Invocable jsInvoke = (Invocable) engine; //执行脚本中定义的方法 Object result1 = jsInvoke.invokeFunction("add", new Object[] { 13, 20 }); System.out.println(result1); // 33.0 // 导入其他java包,使用其他包中的java类 String jsCode = "importPackage(java.util); var list = Arrays.asList([\"北京iteye\",\"清华大学\",\"北京大学\"]); "; engine.eval(jsCode); List<String> list2 = (List<String>) engine.get("list"); for (String temp : list2) { System.out.println(temp); // 北京iteye 清华大学 } //执行一个js文件(我们将a.js至于项目的src下即可) URL is = Demo02.class.getClassLoader().getResource("a.js"); Reader r = new FileReader(is.getPath()); engine.eval(r); // 结果----> 7 } } a.js: //定义test方法 function test(){ var a = 3; var b = 4; println("invoke js file:"+(a+b)); } //执行test方法 test();
相关推荐
Java运行JavaScript脚本引擎Rhino是一个强大的工具,它允许Java应用程序执行JavaScript代码并利用JavaScript的灵活性和动态性。Rhino是Mozilla基金会开发的一个开源项目,它完全用Java编写,因此可以无缝集成到Java...
Rhino脚本引擎在Java程序中的使用,为Java程序引入了脚本化编程的特性,使得Java程序可以更加灵活地处理动态语言的任务,同时也使得那些熟悉JavaScript语法的开发者能够在Java环境中快速上手。Rhino的引入,降低了...
Java 8 Nashorn脚本引擎是Java平台上的一个强大工具,它允许开发者在Java应用程序中直接执行JavaScript代码,极大地增强了Java与动态语言的交互能力。Nashorn引擎首次引入于Java 8,作为对之前Rhino JavaScript引擎...
这种互操作性为开发者提供了极大的灵活性,可以利用JavaScript的动态性和表达力来增强Java应用的功能。 3. **Java API的使用**:书中会详细讲解如何通过Rhino的API在JavaScript中调用Java方法、访问Java变量和类。...
使用Java脚本引擎和Rhino,开发者可以利用JavaScript的灵活性和简洁性,来简化Java程序中复杂或易变的业务逻辑处理。这样做的好处是,可以使用脚本语言的动态特性来处理那些在编写Java代码时难以预料的变化,同时也...
Java Scripting API提供了多种脚本引擎,包括 Rhino引擎、 Nashorn引擎等。每种引擎都有其特点和优点,开发人员可以根据需要选择合适的引擎。 脚本上下文 脚本上下文是指脚本执行时的环境设置,包括脚本变量、函数...
Rhino在JavaScript的世界里扮演着重要角色,因为它将JavaScript的动态性和灵活性带入了Java平台,使得开发者可以利用JavaScript进行服务器端编程、脚本控制、嵌入式应用等。 Rhino的源码对于学习JavaScript引擎内部...
虽然描述中没有提供具体信息,但通常介绍一个引入Java脚本API的主题可能涉及如何将脚本引擎集成到Java应用中,以及如何使用这些引擎来执行动态代码。在实际开发中,这可能包括以下步骤: 1. **添加依赖**:为了使用...
BeanShell作为一种强大的脚本引擎,不仅能够提高Java应用程序的灵活性和可扩展性,还能让非专业程序员也能参与到应用程序的定制化开发过程中。通过本文的介绍,相信您已经掌握了BeanShell的基本特性和集成方法,希望...
反射机制是Java动态性的核心组成部分,它允许在运行时检查类、接口、字段和方法的详细信息,包括注解。通过`java.lang.reflect`包中的类,如`Class`、`Method`和`Field`,我们可以获取到带有注解的元素,并读取注解...
【脚本化Java】是指将JavaScript这种脚本语言与Java编程语言相结合,使得JavaScript能够用于控制和定制Java应用程序。...这涵盖了JavaScript如何在浏览器环境中与Java代码交互,增强了Web应用程序的功能和动态性。
综上所述,《Java脚本语言程序员手册》不仅涵盖了Java中脚本语言的基本概念,还深入探讨了如何在实际项目中有效地运用Java Scripting API,以及如何与Rhino和Nashorn等脚本引擎进行交互。对于任何希望提升Java应用...
【Rhino-Security-Administration】是一个针对Rhino Security的数据管理概念验证项目,旨在提供一个简单易用的平台来管理和操作安全相关的数据。Rhino Security可能是一个虚构的安全框架或组件,这个POC(Proof of ...
综上所述,这个项目可能是为了帮助开发者理解和实践如何在Java项目中集成和运行Groovy,以便更好地利用Groovy的动态性和简洁性,同时为实现定时任务和动态代码执行场景做准备。通过学习和实践这个项目,你可以掌握...
最初,Rhino通过将JavaScript编译成Java字节码的方式来获得最佳性能,但由于这种方式在垃圾回收、编译和加载方面的开销较大,无法满足某些场景下的需求,Rhino随后提供了动态解释执行模式。 随着Rhino的开源,...