import java.io.FileNotFoundException;
import java.io.FileReader;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class AScript {
public static void main(String[] arg) {
ScriptEngineManager factory = new ScriptEngineManager();
/**
* 浏览可用的脚本引擎
*/
// for (ScriptEngineFactory available : factory.getEngineFactories()) {
// System.out.println(available.getEngineName());
// }
ScriptEngine engine = factory.getEngineByName("JavaScript");
HelloWorld hello = new HelloWorld();
/**
* 把java对象加入脚本中,作为脚本变量
*/
engine.put("script_hello", hello);
// try {
// engine.eval("script_hello.sayHello()");
// } catch (ScriptException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
try {
engine.eval(new FileReader("HelloWorld.js"));
/**
* 在java中调用脚本函数
*/
Invocable inv = (Invocable) engine;
inv.invokeFunction("Person", "Tony");
System.out.println("====================脚本实现java接口,java中调用实现=============================");
MaxMin maxMin = inv.getInterface(MaxMin.class);
System.out.println(maxMin.max(2, 1));
System.out.println(maxMin.min(2, 1));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ScriptException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
HelloWorld.js
script_hello.sayHello()
var life={};
for(life.age=1;life.age<=3;life.age++)
{
switch(life.age)
{
case 1:
life.body="我出生了";
life.say = function(){print(this.body+'\n')};
break;
case 2:
life.body="我长大了";
life.brother="小弟弟变大了";
life.say = function(){print(this.body+this.brother+'\n')};
break;
case 3:
life.body="我老了";
life.brother="儿子出来了";
life.say = function(){print(this.body+this.brother+'\n')};
break;
}
life.say();
}
function Person(name)
{
print(name);
}
function min(first,second)
{
return (first < second) ?first:second;
}
function max(first,second)
{
return (first > second) ?first:second;
}
java接口MaxMin
public interface MaxMin {
public int max(int a, int b);
public int min(int a, int b);
}
分享到:
相关推荐
### Java操作JavaScript案例详解 在Java与JavaScript的交互过程中,`ScriptEngine`类扮演着核心角色,自JDK 6.0起,Java正式引入了对脚本语言的支持,其中包括了JavaScript。这一特性极大地增强了Java应用程序的...
在实际应用中,为了增强安全性,通常会使用更安全的AES算法,或者结合非对称加密(如RSA)进行密钥交换。不过,理解如何在Java和JavaScript之间使用DES进行加解密,可以帮助开发者解决基本的跨平台加密需求。 总之...
在Web开发中,由于浏览器端不支持Java,而JavaScript则可以在客户端运行,因此,使用RSA在Java后端生成密钥对,并将公钥传递给JavaScript前端进行加密,再将加密后的数据发送回服务器,由Java后端使用私钥解密,是...
JavaScript 是一种广泛应用于Web开发的轻量级脚本语言,它在1995年由Netscape公司的Brendan Eich创造,最初名为LiveScript,后因Java的流行而更名为JavaScript,尽管名字相似,但它与Sun公司的Java语言在语法和设计...
通过理论教学与实践案例相结合的方式,提升学员的动手能力和解决实际问题的能力。 【学习路径建议】 对于Java学习,首先需要掌握基础语法和面向对象编程思想,然后深入学习集合框架、多线程、I/O流、网络编程等...
虽然这种方法可以实现 JavaScript 和 Java 之间的交互,但由于安全性和兼容性问题,这种做法并不推荐在现代 Web 应用程序中使用。现代浏览器已经不再支持这种方式,因此开发者需要寻找其他替代方案。 #### 2. 从...
Java Web项目开发案例精粹是针对使用Java语言进行Web应用程序开发的一个重要资源集合,它包含了丰富的源代码示例,旨在帮助开发者深入理解并实践Java Web技术。这些源代码实例覆盖了从基础到高级的各种应用场景,有...
总的来说,Android Java与JavaScript桥接技术是Android开发中的一项重要技能,它结合了原生应用的性能和Web开发的便利性,为开发者提供了更灵活的开发方案。通过学习和掌握这一技术,开发者可以构建出功能丰富、用户...
11. **Java应用实例**:通过实际项目案例,演示如何将所学知识应用于Web开发、桌面应用、移动开发等领域。 12. **JavaEE技术**:简要介绍Java企业版的相关技术,如Servlet、JSP、JDBC、EJB、Spring、Hibernate等。 ...
在IT行业中,Java和Ajax是两个非常重要的技术,它们经常被结合使用来创建交互性更强的Web应用程序。在这个“Java+ajax写的登录实例”中,我们将深入探讨如何利用这两种技术实现一个实时验证用户登录信息的功能。 ...
JavaScript Direct Web Remoting (DWR) 是一个开源的JavaScript库,它允许Web应用程序在客户端的JavaScript和服务器端的Java之间进行安全、简单的异步通信。这个框架极大地简化了AJAX(Asynchronous JavaScript and ...
以上知识点构成了“Java Web数据库应用系统开发与实例”的核心内容,理解并熟练掌握这些,是成为一名合格的Java Web开发者的必要条件。通过实践案例,可以更好地理解如何将理论知识应用到实际项目中,提升开发技能。
《亮剑Java Web项目开发案例导航》是一本深入实践的编程教材,主要针对Java Web开发进行详尽的实例解析。源码的提供使得读者能够更好地理解书中的理论知识,并通过实际操作来提升技能。以下是对这个项目开发案例的...
Java Web开发是一种使用Java技术构建基于Web的应用程序的过程,它涵盖了服务器端编程、数据库交互、用户界面设计等多个方面。本实例集合提供了丰富的课件和源代码,旨在帮助初学者逐步掌握Java Web开发的核心技能,...
在Java和JavaScript之间进行交互是跨语言编程的一个重要方面,特别是在构建混合应用程序或者需要利用各自优势的场景下。本文将详细探讨如何实现Java与JavaScript之间的相互调用,并以标题"java如何与脚本...
总的来说,"千里之行购物网站"是一个全面的Web应用实例,涵盖了从前端展示到后端业务处理的各个环节,对于学习和理解Java Web开发流程有着极高的参考价值。通过研究这个项目的源代码,开发者可以深入理解如何将Java...
《亮剑JAVA+WEB开发案例导航》是一本深入实践的编程教材,专注于Java与Web开发技术的结合应用。这本书的核心在于通过丰富的实例,帮助读者掌握Java编程语言的基础以及如何将其应用于Web开发中,构建功能完善的网络...
《JAVA 网上书城开发实例》是一个实践项目,主要使用Java编程语言来构建一个基本的在线书店系统。这个项目旨在展示如何将Java技术应用于实际的Web开发中,特别是结合JSP(JavaServer Pages)和Oracle数据库来实现...
这个课程或教程旨在帮助初学者快速掌握Java Web应用开发的基础,并通过实践案例提升技能。以下是一些关键知识点的详细说明: 1. **Java基础**:在Java Web开发之前,你需要对Java编程语言有扎实的理解,包括基本...
在这个压缩包中,你将找到一系列的Java项目实例,这些实例覆盖了Java开发的多个方面,包括但不限于Web应用、数据处理、多线程、网络编程以及框架的使用等。 在描述中提到的“优秀”和“经典”这两个词,暗示了这些...