我刚刚开始学习Groovy,我正在GroovyConsole中进行实验.
有没有办法可以阅读用户输入?我试过下面的代码,但是我收到了一个错误.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)) print "Input:" input = br.readLine() println "You entered: $input"
这是我收到的错误:
Exception thrown 17-Apr-2012 02:52:39 org.codehaus.groovy.runtime.StackTraceUtils sanitize WARNING: Sanitizing stacktrace: java.io.IOException: Stream closed
有什么我需要导入的吗?
任何帮助都会很棒.
谢谢
我有一个使用第三方库的groovy脚本.每次我打开应用程序并尝试运行我的脚本时,我都必须导入适当的库.
我希望能够打开GroovyConsole并运行我的应用程序,而无需导入库.
我不得不问这个问题感觉很荒谬,但我似乎无法将多个 jar 文件添加到 groovyConsole 和 groovysh 的类路径中。如何将多个 jar 文件添加到类路径?这是我尝试过的:
groovyConsole -cp ~/lib/compile/jar/mysql-connector-java-5.1.32.jar:~/lib/compile/jar/ojdbc6-11.2.0.3.jar
但是,当我在控制台中执行此代码时,我得到以下信息:
file:/Users/charlie/lib/compile/jar/mysql-connector-java-5.1.32.jar
file:/Users/charlie/projects/fuseanalytics/./
file:/Users/charlie/.gvm/groovy/current/lib/ant-1.9.3.jar
file:/Users/charlie/.gvm/groovy/current/lib/ant-antlr-1.9.3.jar
file:/Users/charlie/.gvm/groovy/current/lib/ant-junit-1.9.3.jar
file:/Users/charlie/.gvm/groovy/current/lib/ant-launcher-1.9.3.jar
file:/Users/charlie/.gvm/groovy/current/lib/bsf-2.4.0.jar
file:/Users/charlie/.gvm/groovy/current/lib/commons-cli-1.2.jar
file:/Users/charlie/.gvm/groovy/current/lib/commons-logging-1.1.1.jar
file:/Users/charlie/.gvm/groovy/current/lib/gpars-1.2.1.jar
file:/Users/charlie/.gvm/groovy/current/lib/groovy-2.3.6.jar
file:/Users/charlie/.gvm/groovy/current/lib/groovy-ant-2.3.6.jar
file:/Users/charlie/.gvm/groovy/current/lib/groovy-bsf-2.3.6.jar
file:/Users/charlie/.gvm/groovy/current/lib/groovy-console-2.3.6.jar
file:/Users/charlie/.gvm/groovy/current/lib/groovy-docgenerator-2.3.6.jar
file:/Users/charlie/.gvm/groovy/current/lib/groovy-groovydoc-2.3.6.jar
file:/Users/charlie/.gvm/groovy/current/lib/groovy-groovysh-2.3.6.jar
file:/Users/charlie/.gvm/groovy/current/lib/groovy-jmx-2.3.6.jar
file:/Users/charlie/.gvm/groovy/current/lib/groovy-json-2.3.6.jar
file:/Users/charlie/.gvm/groovy/current/lib/groovy-jsr223-2.3.6.jar
file:/Users/charlie/.gvm/groovy/current/lib/groovy-nio-2.3.6.jar
file:/Users/charlie/.gvm/groovy/current/lib/groovy-servlet-2.3.6.jar
file:/Users/charlie/.gvm/groovy/current/lib/groovy-sql-2.3.6.jar
file:/Users/charlie/.gvm/groovy/current/lib/groovy-swing-2.3.6.jar
file:/Users/charlie/.gvm/groovy/current/lib/groovy-templates-2.3.6.jar
file:/Users/charlie/.gvm/groovy/current/lib/groovy-test-2.3.6.jar
file:/Users/charlie/.gvm/groovy/current/lib/groovy-testng-2.3.6.jar
file:/Users/charlie/.gvm/groovy/current/lib/groovy-xml-2.3.6.jar
file:/Users/charlie/.gvm/groovy/current/lib/hamcrest-core-1.3.jar
file:/Users/charlie/.gvm/groovy/current/lib/ivy-2.3.0.jar
file:/Users/charlie/.gvm/groovy/current/lib/jansi-1.11.jar
file:/Users/charlie/.gvm/groovy/current/lib/jcommander-1.35.jar
file:/Users/charlie/.gvm/groovy/current/lib/jline-2.11.jar
file:/Users/charlie/.gvm/groovy/current/lib/jsp-api-2.0.jar
file:/Users/charlie/.gvm/groovy/current/lib/jsr166y-1.7.0.jar
file:/Users/charlie/.gvm/groovy/current/lib/junit-4.11.jar
file:/Users/charlie/.gvm/groovy/current/lib/multiverse-core-0.7.0.jar
file:/Users/charlie/.gvm/groovy/current/lib/qdox-1.12.1.jar
file:/Users/charlie/.gvm/groovy/current/lib/servlet-api-2.4.jar
file:/Users/charlie/.gvm/groovy/current/lib/testng-6.8.8.jar
file:/Users/charlie/.gvm/groovy/current/lib/xmlpull-1.1.3.1.jar
file:/Users/charlie/.gvm/groovy/current/lib/xstream-1.4.7.jar
Run Code Online (Sandbox Code Playgroud)
请注意,第一个 jar 文件 mysql jar 文件已添加到类加载器中,但未添加第二个 jar 文件 oracle jar 文件。我也试过两次使用 -cp 参数,例如:
groovyConsole -cp ~/lib/compile/jar/mysql-connector-java-5.1.32.jar -cp ~/lib/compile/jar/ojdbc6-11.2.0.3.jar
Run Code Online (Sandbox Code Playgroud)
但这只是失败并出现错误。这些文档显然没有任何指导,除了模糊的暗示它像 Java 一样工作。因此,为什么第一次尝试没有开箱即用如此令人沮丧。
我还尝试在使用 Script > Add …
我正在努力将KornShell(ksh)脚本转换为Groovy.我有以下Find命令 - 什么是Groovy方法做类似的事情,而不依赖于Unix命令(我需要这个跨平台工作,所以我不能做"blah blah".execute()).
find <source directory> -name <file pattern> -type f -mtime +140 -level 0
Run Code Online (Sandbox Code Playgroud)
此代码搜索源文件目录中的所有文件(无子目录),这些文件与文件模式匹配且超过140天.
在Python中,注释函数时,可以采用一种使自动生成文档更加容易的方式来实现。他们将其称为文档字符串。
现在,我已经在Groovy中创建了一个我想传递的抽象类,是否还有一种标准的方式我应该对此进行注释?是否有任何Groovy工具可从代码注释生成基本文档?
以下是2行代码:
def name = "Neo"
println name
Run Code Online (Sandbox Code Playgroud)
如果我执行它groovysh,我会得到Unknown property: name错误.如果我执行它groovyConsole,一切都很顺利.
代码如下:
class Book
{
private String title
Book (String theTitle)
{
title=theTitle
}
String getTitle()
{
return title
}
}
Book gina=new Book('Groovy in Action')
assert gina.getTitle()=='Groovy in Action'
assert getTitleBackwards(gina)=='noitcA ni yvoorG'
String getTitleBackwards(Book)
{
title=book.getTitle()
return title.reverse()
}
Run Code Online (Sandbox Code Playgroud)
当我使用Ctrl + R执行时,我得到以下编译错误.
1编译错误:
类Book的重复类定义无效:源Book.groovy包含至少两个类Book的定义.其中一个类是使用class语句的显式生成类,另一个是基于文件名从脚本体生成的类.解决方案是更改文件名或更改类名.at line:1,column:1
有人可以解释一下这里发生了什么.
你好我是一个groovy的初学者我是如何检查如何检查给定的输入是否是一个数字我试过以下
def a= ' 12.571245ERROR'
if(a.isNan()==0)
{
println("not a number")
}
else
{
println("number")
}
Run Code Online (Sandbox Code Playgroud)
请帮助我如何在groovy中使用isNan.我google了很多但没有找到任何结果.提前致谢
当我在GroovyConsole中执行以下脚本时,它给了我一个,MissingPropertyException但我不明白为什么:
def a = 'A'
def b() {
println a
}
b()
Run Code Online (Sandbox Code Playgroud)
抛出以下异常:
groovy.lang.MissingPropertyException: No such property:
a for class: ConsoleScript18
at ConsoleScript18.b(ConsoleScript18:3)
at ConsoleScript18.run(ConsoleScript18:5)
Run Code Online (Sandbox Code Playgroud) 我有一个JSON数组(地图列表)类似于:
def listOfMap = [[TESTCASE:1, METHOD:'CLICK', RESULT:'PASS'],
[TESTCASE:2, METHOD:'CLICK', RESULT:'FAIL'],
[TESTCASE:3, METHOD:'CLICK', RESULT:'FAIL'],
[TESTCASE:4, METHOD:'TYPETEXT', RESULT:'FAIL']]
Run Code Online (Sandbox Code Playgroud)
1)我想获取/过滤/返回包含键值对" METHOD:CLICK "和" RESULT:FAIL "的所有列表
My output should return 2 lists out of 4: [TESTCASE:2, METHOD:CLICK, RESULT:FAIL], [TESTCASE:3, METHOD:CLICK, RESULT:FAIL]
Run Code Online (Sandbox Code Playgroud)
2)我想获得包含键值对" METHOD:CLICK "和" RESULT:FAIL " 的列表计数
My output should be : 2
Run Code Online (Sandbox Code Playgroud)
3)从上面的地图列表中,我想获得关键字" METHOD "的所有唯一/不同值
My output should return unique values of the key method : CLICK, TYPETEXT
Run Code Online (Sandbox Code Playgroud)