0

我在 Groovy 脚本中发现了几个使用 NekoHTML 库的片段,例如

def page = new XmlSlurper(new org.cyberneko.html.parsers.SAXParser()).parse('http://groovy.codehaus.org/')
def data = page.depthFirst().grep{ it.name() == 'A' && it.@href.toString().endsWith('.html') }.'@href'
data.each { println it }

所以我下载了 Groovy,然后我下载了 NekoHTML。

NekoHTML 位于此处:
D:\TOOLS\nekohtml-1.9.18\

当我运行代码段时,我得到:

D:\SCRIPTS\webtesting.groovy: 4: unable to resolve class org.cyberneko.html.parsers.SAXParser
 @ line 4, column 27.
   def page = new XmlSlurper(new org.cyberneko.html.parsers.SAXParser()).parse('http://groovy.codehaus.or
g/')

我的研究告诉我,我需要在类路径中包含 NekoHTML。

所以我设置了一个环境变量 CLASSPATH 它等于:
CLASSPATH=D:\TOOLS\nekohtml-1.9.18\src

我打开了另一个 cmd 窗口并运行了我的测试 groovy 脚本。我得到与上面相同的错误。

我的 CLASSPATH 应该设置什么来引用带有 org.cyberneko.html.parsers.SAXParser 的 NekoHTML 组件?

4

1 回答 1

1

您将需要nekohtml-1.9.18.jarxercesImpl-2.10.0.jar在您的类路径上。

或者您可以@Grab在脚本顶部添加一个

@Grab( 'net.sourceforge.nekohtml:nekohtml:1.9.18' )

groovy webtesting.groovy会为您获取这些依赖项。当然,这取决于脚本的运行方式

于 2013-08-22T08:34:46.857 回答