`
wenxin2009
  • 浏览: 320541 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java支持脚本语言

    博客分类:
  • java
 
阅读更多

  Java SE6中添加了脚本语言API,可通过java进行灵活的操作脚本语言。以下是示例代码:

//操作属性
	public static void attributeInBindings() throws ScriptException {
		ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
		ScriptContext context = engine.getContext();
		context.setAttribute("name", "Alex", ScriptContext.GLOBAL_SCOPE);
		engine.eval("println(name);");//输出Alex
	}

 

//调用方法
	public static void invokeFunction() throws ScriptException, NoSuchMethodException{
		ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
		String scriptText = "function greet(name){println('hello,'+name);}";
		engine.eval(scriptText);
		Invocable invocable = (Invocable)engine;
		invocable.invokeFunction("greet", "wenxin");
	}
 
//调用脚本中对象成员方法
	public static void invokeMethod() throws ScriptException, NoSuchMethodException{
		ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
		String scriptText = "var obj={getGreeting:function(name){return 'hello,'+name;}};";
		engine.eval(scriptText);
		Invocable invocable = (Invocable)engine;
		Object scope = engine.get("obj");
		Object result = invocable.invokeMethod(scope, "getGreeting", "dwen");
		System.out.println(result);
	}
 
//进行脚本编译{解释执行的方式运行脚本的速度比编译之后再运行会慢些,当一段脚本需要被多次重复
	//执行时,可以对脚本进行编译。编译之后脚本在执行时不需重复解析}
	public static void compliedScript() throws ScriptException, NoSuchMethodException{
		CompiledScript script = null;
		ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
		String scriptText = "function getGreeting(name){println('hello,'+name);}";
		if (engine instanceof Compilable) {//实例判断,因为不是所有脚本语言都支持编译
			script = ((Compilable) engine).compile(scriptText);
			script.eval();
			Invocable invocable = (Invocable)engine;
			invocable.invokeFunction("getGreeting", "wenxin");
		}
	}

 操作实现java接口:

public interface IGreet {
	public String getGreeting(String name);
}
 
	//在脚本中实现java接口
	public static void useInterface() throws ScriptException{
		ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
		String scriptText = "function getGreeting(name){return 'hello,'+name;}";
		engine.eval(scriptText);
		Invocable invocable = (Invocable)engine;
		IGreet greet = invocable.getInterface(IGreet.class);
		System.out.println(greet.getGreeting("接口"));
	}
 

 

 

分享到:
评论

相关推荐

    java与脚本语言.rar

    3. 社区支持:Java和许多脚本语言都有庞大的社区,提供丰富的库和框架,但具体取决于具体语言。 4. 学习曲线:Java的语法较为复杂,学习成本相对较高;而许多脚本语言如Python有较平缓的学习曲线。 这个“java与...

    java调用脚本语言笔记(jython,jruby,groovy)

    Java作为企业级应用的首选平台,有时也需要与脚本语言进行交互,以实现动态配置、自动化测试或者快速原型开发等需求。本文将深入探讨如何在Java中调用三种流行的脚本语言:Jython、JRuby和Groovy。 ### Jython ...

    java 动态脚本语言 精通 Groovy

    Groovy是一种基于Java平台的动态脚本语言,它在Java开发者中越来越受欢迎,因为它提供了简洁、灵活的语法,以及强大的动态编程能力。Groovy与Java兼容性极佳,可以直接调用Java类库,使得它在Java生态系统中具有广泛...

    Java脚本语言程序员手册

    《Java脚本语言程序员手册》是一本专门为Java脚本编程者设计的指南,旨在帮助开发者深入理解和高效利用Java脚本语言。手册详细介绍了Java Scripting API(JSR 223)以及相关的脚本框架,如Rhino和Nashorn,这些都是...

    javasprint脚本语言编程的web案例

    JavaSprint是一种基于Java的脚本语言,常用于快速开发Web应用程序。它的设计目标是简化Web界面的构建,提供一种更高效、更易读的语法,使得开发者可以更专注于业务逻辑,而不是繁琐的低级编程任务。在"javasprint...

    Java脚本编程:语言、框架与模式

    根据给定的信息,“Java脚本编程:语言、框架与模式”这一主题包含了三个核心部分:Java作为一门编程语言的基础知识、流行的Java开发框架以及在Java编程中常用的软件设计模式。 ### Java编程语言 #### 1. Java语言...

    脚本语言支持组件支持库

    相比于编译型语言(如C++、Java),脚本语言具有学习曲线较平缓、开发速度快等特点。 脚本语言支持组件则是一个中间件,它为应用提供一个接口,使得程序可以无缝地调用和执行脚本语言代码。这个组件通常包括以下几...

    java脚本语言

    Java脚本语言,虽然在名字中包含了"Java",但其实与Java编程语言并不完全相同。它是用于增强网页交互性和动态性的脚本语言,主要在客户端浏览器中运行,以JavaScript最为常见。JavaScript是由Netscape公司的Brendan ...

    在Java中使用脚本语言JavaScript

    * 在Java中使用脚本语言JavaScript。 * * @author LeiWen@FansUnion.cn,http://FansUnion.cn, * http://blog.csdn.net/FansUnion * * QQ:240370818 参考资料:...

    java脚本编程

    需要注意的是,这里提到的“Java脚本编程”可能是指与Java相关的脚本编程技术,但在实际中,Java本身并不是一种脚本语言,而是一种面向对象的编程语言。不过,Java生态系统中有多种脚本语言可以运行在Java平台上,...

    Java脚本教程(学习资料)

    这个API允许Java应用程序与各种脚本语言进行交互,比如JavaScript、Groovy、Jython和JRuby等。下面将详细介绍Java Scripting API的主要组件和使用方法。 1. **ScriptEngine接口**: `ScriptEngine`是Java ...

    纯Java 实现的一个脚本语言 语法类似java s c r i p t.rar

    在这些情况下,一种理想的解决方案是在Java应用中提供对脚本语言解释器的支持,让脚本语言解释器读取用户编写的脚本并在应用提供的类上运行这些脚本。为了实现这个目标,你可以在Java应用所运行的JVM中,运行一个...

    java android 执行脚本代码(java代码)

    - **JSR 223 Scripting**: Android支持JSR 223规范,允许使用各种脚本语言(如Groovy、JavaScript等)编写代码,然后通过`ScriptEngineManager`和`ScriptEngine`接口执行。 5. **AOSP源码集成**: - 对于更复杂的...

    JAVA 脚本应用数据

    在Java中,你可以利用内置的ScriptEngine接口和相关的脚本引擎实现对不同脚本语言(如JavaScript、Groovy、Ruby等)的支持,从而在应用程序中进行动态计算、数据处理或者扩展功能。JavaMail则是Java中用于处理电子...

    第 1 部分: 引入 Java 脚本 API

    Java 脚本 API,也称为 Java Scripting API,是Java平台标准版(Java SE)的一部分,它允许Java应用程序在运行时执行脚本语言代码。这个API在Java 6版本中得到了显著增强,为开发者提供了在Java程序中嵌入和执行脚本...

    基于Java的面向对象的脚本语言 ObjectScript.zip

    综上所述,Java的面向对象编程和ObjectScript这种基于Java的脚本语言构成了一个强大的开发环境,结合了面向对象的强大功能和脚本语言的便捷性。理解并掌握这些知识,对于提升软件开发效率和代码质量至关重要。

    脚本化Java

    【脚本化Java】是指将JavaScript这种脚本语言与Java编程语言相结合,使得JavaScript能够用于控制和定制Java应用程序。在Java 6版本中,引入了对脚本化语言的支持,特别是通过内置的JavaScript解释器(如Rhino),...

    纯Java 实现的一个脚本语言 语法类似javascript

    1. **语法兼容性**:Scorpio-Java支持类似于JavaScript的语法,使得熟悉JavaScript的开发者可以无缝切换。 2. **解释器**:它包含了一个Java虚拟机上的脚本解释器,能够解析并执行Scorpio-Java脚本。 3. **API集成**...

    在Java中运行Perl脚本 JERL

    Java是一种广泛使用的面向对象的编程语言,而Perl则是一种功能强大的脚本语言,常用于文本处理和系统管理任务。在某些场景下,我们可能需要在Java应用程序中调用Perl脚本来执行特定的功能。JERL(Java-Embedding for...

Global site tag (gtag.js) - Google Analytics