当前位置:首页 > 图灵资讯 > 技术篇> java 集成 gstreamer java 集成 groovy
java 集成 gstreamer java 集成 groovy
发布时间:2023-05-16 09:32:01
第一次接触grovy,主要是嵌入java中的grovy脚本,因为grovy和java的融合非常好。
首先放上第一次写的grovy段:
事实上,它完成的是java的systemm.out操作主要是为了理解binding在groovy中的应用
说说背景,这里的功能是打印日志,最初使用system.out,结果师父为了让我接触grovy,强迫我加脚本
然后我学会了grovy的力量!
首先,java和grovy的结合有几种方式:(首先别忘了加grovy的依赖包!)
1)直接运行grovy脚本(就是我的)
2)grovy脚本在java中动态运行:java加载grovy脚本,然后调用脚本
给个例子:
package groovy;import groovy.lang.GroovyClassLoader;import groovy.lang.GroovyObject;import java.io.File;public class Java2GroovyDynamic {public static void main(String[] args) throws Exception {// TODO Auto-generated method stubClassLoader parent = ClassLoader.getSystemClassLoader();GroovyClassLoader loader = new GroovyClassLoader(parent);Class groovyClass = loader.parseClass(new File("D:\\workspace\\groovy\\src\\groovy\\GroovyDemo.groovy"));GroovyObject groovyObject = (GroovyObject)groovyClass.newInstance();Object[] param = {123,321};int res = (int) groovyObject.invokeMethod("add", param);System.out.println("res="+res); }}
grovy脚本:
package groovyclass GroovyDemo {static int add(int x,int y) {return x+y;}static main(args) {int z = add(123,321);println("x+y="+z);}}
3)grovy脚本引擎:grovy脚本引擎可以通过设置CLASPATH来初始化,path下的任何grovy脚本文件都可以运行
package groovy;import groovy.lang.Binding;import groovy.util.GroovyScriptEngine;public class Java2GroovyEngine {public static void main(String[] args) throws Exception {// TODO Auto-generated method stubString path = "D:\\workspace\\groovy\\src\\groovy\\";GroovyScriptEngine gse = new GroovyScriptEngine(path);Binding binding = new Binding();binding.setVariable("input", "Groovy");gse.run("Test.groovy", binding);System.out.println(binding.getVariable("output"));}}
grovy脚本:
package groovy;output = "Hello ${input}";
ps 图灵课堂老师从近一百套最新一线互联网公司面试题中精选而出,涵盖Java架构面试 所有技术栈,包括JVM,Mysql,并发,Spring,Redis,MQ,Zookeeper,Netty, Dubbo,Spring Boot,Spring Cloud,数据结构与算法,设计模式等相关技术领域的大 厂面试题及详解。 详情咨询客服获取全套面经试题。