`
suifongqi
  • 浏览: 54249 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JAVA结合JAVASCRIPT的应用实例

    博客分类:
  • JAVA
阅读更多
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上百实例源码以及开源项目源代码

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    JAVA上百实例源码以及开源项目

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    VC 结合Java编程的实例.rar

    一个简单的VC 结合Java编程的实例,演示在JAVA和VC 之间互相传递消息,接收消息并以弹出框的形式显示,此为简单的例子,在一些大型项目中,多种语言混合编程是程序员必备的技能,一个程序员不可能只会一种编程语言,...

    [精通JavaScript动态网页编程].王俊杰.扫描版

    本书结合JavaScript 1 5和Jscript 5 5 由浅入深 循序渐进地全面介绍了JavaScript知识体系及编程设计技巧 全书分4篇 共30章 内容涵盖了JavaScript语法 JavaScript核心内容 JavaScript高级以及JavaScript应用等内容 对...

    java开源包8

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    Java Web开发完全掌握

    《Java Web开发完全掌握》深入浅出,图文并茂,直观生动,结合大量典型实例帮助读者理解和应用知识。为了方便读者学习,书中实例所涉及的源代码都收录到《Java Web开发完全掌握》的配套光盘中,供读者在学习过程中...

    java开源包6

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包11

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包9

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包4

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包101

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包5

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包10

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    张孝祥javascript视频教程源代码

    本教程结合大量应用实例,详细地讲解了HTML语言、CSS、JavaScript、DOM对象模型编程、正则表达式,并介绍了网页脚本编程的其它相关技术和知识,例如,VBScript、NetScape控件、ActiveX控件、Java Applet小程序等。...

    java开源包3

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包1

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    [JavaScript网页特效范例宝典].明日科技.扫描版2

    JavaScript与ASP.NET结合、JavaScript与PHP结合、综合应用等。全书共提供了401个实例,每个实例都突出实用性,其中大部分是网站开发者梦寐以求的问题解决方案。 本书附有配套光盘。光盘提供了书中所有实例的全部源...

    JavaScript网页特效范例宝典(下)

    本书以网站开发者在开发中遇到的实际问题和应该掌握的...JavaScript与ASP.NET结合、JavaScript与PHP结合、综合应用等。全书共提供了401个实例,每个实例都突出实用性,其中大部分是网站开发者梦寐以求的问题解决方案。

    Java.Web整合开发与项目实战(第二版).zip

    《Java Web整合开发与项目实战:JSP Ajax...《Java Web整合开发与项目实战:JSP Ajax Struts Hibernate Spring(第2版)》还重点介绍了利用主流框架,如Struts、Spring和Hibernate相结合的轻量级应用开发知识及案例实现。

Global site tag (gtag.js) - Google Analytics