概述
在idea下,标准的Java maven项目中展示如何调用Groovy脚本和方法。
maven项目引进Groovy lib
File -> Project Structure -> Global Libaries 添加下载好的Groovy下lib里面的jar包
调用Groovy脚本
首先,Java调用Groovy脚本需要该Groovy脚本里面有个main方法,用于传参
import org.apache.commons.lang.StringUtils
import org.jsoup.Jsoup
import org.jsoup.nodes.Document
static void main(String[] args) {
try {
def html = args[0]
Document document = Jsoup.parse(html)
def title = document.getElementsByTag("title").first().text()
def content = document.select("#kw").html()
def article = new Article()
article.setTitle(title)
article.setContent(content)
print(article.toString())
} catch (Exception e) {
e.printStackTrace()
}
}
这个脚本的功能是解析一个网页并将解析出来的数据封装成Article对象,该Article可以是Java类也可以是Groovy类。然后在Java程序中调用该叫不能去解析网页。
import com.x.script.groovy.Article;
import groovy.lang.*;
import org.apache.commons.io.IOUtils;
import java.io.File;
import java.io.FileInputStream;
public class App {
public static void main( String[] args ) {
try {
String html = IOUtils.toString(new FileInputStream(new File("C:\Users\linsf\Desktop\baidu.html")));
Binding binding = new Binding(new String[]{html});
GroovyShell shell = new GroovyShell(binding);
shell.evaluate(new File("C:\Users\linsf\Desktop\html_parser.groovy"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
调用Groovy类的方法
现在编写一个Groovy类,该类的工作是解析一个网页并将网页内容封装成Article对象返回。
import org.jsoup.Jsoup
import org.jsoup.nodes.Document
class BaiduParser {
Article parse(html, count) {
print(count)
try {
Document document = Jsoup.parse(html)
def title = document.getElementsByTag("title").first().text()
def content = document.select("#kw").html()
def article = new Article()
article.setTitle(title)
article.setContent(content)
return article
} catch (Exception e) {
e.printStackTrace()
}
return null
}
}
然后在Java程序中调用该类的解析网页的方法。
import com.x.script.groovy.Article;
import groovy.lang.*;
import org.apache.commons.io.IOUtils;
import java.io.File;
import java.io.FileInputStream;
public class App {
public static void main( String[] args ) {
try {
String html = IOUtils.toString(new FileInputStream(new File("C:\Users\linsf\Desktop\baidu.html")));
GroovyClassLoader loader= new GroovyClassLoader();
Class fileCreator =loader.parseClass(new File("F:\x-demo\src\main\java\com\x\script\groovy\BaiduParser.groovy"));
GroovyObject object =(GroovyObject) fileCreator.newInstance();
System.out.println("--" + object.invokeMethod("parse", new Object[]{html, 1}));
} catch (Exception e) {
e.printStackTrace();
}
}
}
最后
以上就是土豪抽屉为你收集整理的java 调用groovy_Java调用Groovy脚本的全部内容,希望文章能够帮你解决java 调用groovy_Java调用Groovy脚本所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复