我是靠谱客的博主 土豪抽屉,最近开发中收集的这篇文章主要介绍java 调用groovy_Java调用Groovy脚本,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在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脚本所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部