java调用、执行groovy代码

java调用、执行groovy代码

 1: package test;
 2:  
 3: import javax.script.ScriptEngine;
 4: import javax.script.ScriptEngineManager;
 5: import javax.script.ScriptException;
 6:  
 7: public class ScriptExcuteUtil {
 8:  
 9:     public ScriptExcuteUtil() {
 10:  
 11:     }
 12:  
 13:     /**
 14:  * @param args
 15:  */
 16:     public static void main(String[] args) {
 17:         ScriptEngineManager manager = new ScriptEngineManager();
 18:         ScriptEngine engine = manager.getEngineByName("groovy");
 19:         try {
 20:             System.out.println("calling groovy from java start");
 21:             engine.put("name", "VerRan");
 22:             engine.eval("println \"${name}\"+\"你好\";name=name+'!'");
 23:             System.out.println(engine.get("name"));
 24:             System.out.println("calling groovy from java end");
 25:             
 26:             engine.eval("");
 27:         } catch (ScriptException e) {
 28:             e.printStackTrace();
 29:         }
 30:     }
 31:  
 32: }
 
 
 1: package test;
 2:  
 3: import groovy.lang.GroovyClassLoader;
 4: import java.io.File;
 5:  
 6: public class InvokeGroovy {
 7:     public static void main(String[] args) {
 8:         ClassLoader cl = new InvokeGroovy().getClass().getClassLoader();
 9:         GroovyClassLoader groovyCl = new GroovyClassLoader(cl);
 10:         try {
 11:             // 从文件中读取
 12:             Class groovyClass = groovyCl.parseClass(new File(
 13:                     "C:\\mysource2\\GroovyLearn\\groovy\\fist\\Foo.groovy"));
 14:             Class groovyClass2 = groovyCl
 15:                     .parseClass("package org.openjweb.groovy; \r\n import test.IFoo;\r\n class Foo implements IFoo {public Object run(Object foo) {return ((Integer)foo).intValue()+3}}");
 16:  
 17:             IFoo foo = (IFoo) groovyClass.newInstance();
 18:             System.out.println(foo.run(new Integer(2)));
 19:  
 20:             IFoo foo2 = (IFoo) groovyClass2.newInstance();
 21:             System.out.println(foo2.run(new Integer(2)));
 22:  
 23:         } catch (Exception e) {
 24:             e.printStackTrace();
 25:         }
 26:     }
 27: }
ClassLoader 的另一种方式

ClassLoader parent = ClassLoader.getSystemClassLoader();

GroovyClassLoader loader = new GroovyClassLoader(parent);

posted on 2011-07-14 10:30 拒绝浮躁 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/mycoding/archive/2011/07/14/2106043.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261339.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AGS Server 10.1 切图工具

在AGS Sever中很重要的功能就是地图缓存的制作,安装AGS Sever会在catalog中增加相关的工具箱,利用这些工具可以制作、删除、更新切片 一、Convert map server cache storage format(转换服务缓存的存储格式) 利用该工具可以快速的切换地图缓存的格式&…

0511 backlog 项目管理

SCRUM 这次的作业就是确定SCRUM的计划,确定sprint backlog的一个冲刺周期,而这个周期是两个星期。争取在两周内发布1.0版本。 本次作业以网站构建为主: ID NAMEIMPESTHOW TO DONOTES1首页99小时用户登录网站也可以看游客的推广的内容&am…

swing和MySQL登录注册_JavaSwing+Mysql实现简单的登录界面+用户是否存在验证

原生Javamysql登录验证clientlogin.java功能:实现登录页面,与服务端传来的数据验证package LoginRegister;import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.regex.Pattern;import …

4月27日微软云训练营活动-现场图集

1.签到 2.到场同学,这一天是工作日,但是人气依然很火。 转载于:https://www.cnblogs.com/finehappy/p/3262296.html

vim编程 插入 保存不退出 保存退出 退出不保存 另存为其他文件名 保存覆盖现有文件...

---恢复内容开始--- 在xshell里写代码,如果需要编辑代码,可以输入 vim xxx.py ,进入vim编辑界面 这里的xxx.py表示 python的存储文件,后缀名是.py。1.插入字符 输入 i 可键入或者shift i2&…

wdcp mysql密码_wdcp默认的mysql密码是多少?

重置mysql root密码方法一、Windows环境的找回方法:1、打开cmd命令窗口,先输入命令:net stop mysql 回车 #关闭mysql服务。进入到D:\SOFT_PHP_PACKAGE\mysql\bin\ 目录下,执行mysqld --skip-grant-tables 启动MySQL Server (如果报…

Java中内存中的Heap、Stack与程序运行的关系

堆和栈的内存管理 栈的内存管理是顺序分配的,而且定长,不存在内存回收问题;而堆 则是随机分配内存,不定长度,存在内存分配和回收的问题;堆内存和栈内存的区别可以用如下的比喻来看出:使用堆内存…

ASP.NET Core的配置(5):配置的同步[设计篇]

本节所谓的“配置同步”主要体现在两个方面:其一,如何监控配置源并在其变化的时候自动加载其数据,其目的是让应用中通过Configuration对象承载的配置与配置源的数据同步;其二、当Configuration对象承载的配置放生变换的时候如何向…

mysql 5.6 linux安装配置_linux手动安装配置mysql5.6

1.准备工作①官网下载:https://dev.mysql.com/downloads/mysql/5.6.html#downloads下载之后上传到服务器。②创建linux组用户groupadd mysqluseradd -g mysql mysql2.安装①解压,比如放到了/usr/local/,进入到该目录下,进行用z解压gz包&#…

Winodws Socket I/O模型的整理

Winodws Socket I/O模型的整理大致分以五种.其中Overlapped I/O模型是有两种实现方法. 一:select模型二:WSAAsyncSelect模型三:WSAEventSelect模型四:Overlapped I/O 事件通知模型/完成例程模型五:完成端口IOCP模型 这…

KVM安装Windows Server 2008 R2使用virtio硬盘

在上一篇文章中,我们介绍了使用IDE硬盘来安装Windows Server 2008 R2,这篇文章我们来介绍使用virtio硬盘来安装Windows Server 2008 R2。 说明:KVM默认使用的硬盘格式为virtio。 使用virtio接口的硬盘,我们必须加载virtio硬盘驱动。如果不加载…

Sublime Text 2 入门及技巧

看了 Nettuts 对 Sublime Text 2 的介绍,立刻就兴奋了,诚如作者 Jeffrey Way 所说:“《永远的毁灭公爵》都发布了,TextMate 2 还没发”,你还能指望它么?TextMate 开发者的消极态度已经无法让人忍受了。而作…

跨域名,服务器登录 .

编辑器加载中... function SingleSignOn() {//只能用脚本改变指定 Form 提交的对象 document.getElementById("form1").action"http://。。。。。/WebApp/UsersLogin.aspx"; //把隐藏控件 __VIEWSTATE 中的值变更为 LoginTransfer…

YII 配置文件

用YIIFramework的库开发 Java代码 .... Yii::createWebApplication($config); //没有run Yii::import(class1,true),在将class1类文件路径存储时,同时include该文件 注意:你也可以将配置文件分为多个文件&#xff0…

mysql 备份到别的机器_物理拷贝备份mysql到其他机器上恢复

经常会遇到mysql数据要迁徙的情况 ,逻辑导出是可以的 但是就是太慢 第三方工具也同样可以用 也是操作麻烦,最简单粗暴的方式就是直接拷贝物理文件来的最快 也很简单 当然 前提是远程服务器和目标服务器是相同的文件系统和mysql版本,不然还是没…

Hibernate映射关系总结篇

又从头学习了一遍hibernate的映射关系,每一次都会有新的收获,总是感觉自己还是不会hibernate。单从配置上说:知其然不知其所以然,马上就要找工作的人了,很是为自己担心呀!! 众所周知&#xff0c…

iOS内存管理(ARC,MRC)

iOS内存管理方式: ARC Automatic Reference Counting 自动引用计数 MRC Manual Reference Counting 手动引用计数 更改管理方式: 内存管理的问题: 1、内存泄露:不再需要的对象没有释放。 2、野指针:正在使用的对象提前…

height:auto 火狐没边框

css高度设置为auto后,设置的边框 ie正常 火狐 就没有边框了,解决方法 之前是这样写的 #right_bottom { width: 790px; height:auto; border: #EBEBEB 1px solid; } 最后添加了一个overflow: hidden;属性ok了,ie火狐都可以显示边框 即: #right_bottom {…

mysql装完后navicat无法连接_重装mysql后导致Navicat连接失败

今天重装了mysql数据库,然后再使用navicat去连接数据库的时候,一直报错 1251 Client does not support authentication protocol requested by server解决方法:1、cmd登录mysql2、修改Navicat中连接数据库的密码3、刷新mysql的系统权限表flus…

【求助】小系统组成大系统所遇到的问题

以下只是举例&#xff01; 环境&#xff1a; 1&#xff0c;通用实体库CommonEntity&#xff0c;里面有管理员类 class Administrator<TEntity> : Entity<TEntity>, IAdministrator where TEntity:Administrator<TEntity>{ static TEntity Login(String usern…