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脚本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle 数据怎么实时同步到 Mon
- 下一篇: 基于Java+SpringBoot+vu