[英]Groovy: What's wrong with this “Hello World” program?
這不起作用:
$ groovy -e 'println "Hello, world!"'
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
script_from_command_line: 1: unexpected char: 0xFFFF @ line 1, column 23.
println "Hello, world!
^
1 error
但是,在最后的雙引號和單引號之間加一個空格......
$ # groovy -e 'println "Hello, world!"'
$ groovy -e 'println "Hello, world!" '
Hello, world!
...即使bash
似乎能夠正確處理尾隨"'
對(即沒有任何插入空間),如下所示:
$ echo '"Hello, world!"'
"Hello, world!"
另外,將println
參數括起來也可以正常工作:
$ groovy -e 'println ("Hello, world!")'
Hello, world!
現在,我想知道為什么第一個案例不起作用。
我正在使用:
正如BDKosher已經說過的,這是來自Apache Commons CLI的錯誤。 Groovy希望更新到1.3,但是CLI人員會花時間使用該版本並且它包含不兼容性。
正如我在上面的注釋中寫的那樣,antlr使用0xFFFF來顯示文件的結尾,它不必是一個有效的unicode字符。 由於這一點,措辭受到批評,但措辭來自解析器生成器antlr,而不是來自我們。
我看到運行版本2.1.3和Java 6的異常:
C:\Users\mwest>groovy -e 'println "Hello, world!"'
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
script_from_command_line: 1: expecting ''', found '<EOF>' @ line 1, column 9.
'println
好奇地扭轉了引號的作用
C:\Users\mwest>groovy -e "println 'Hello, world!'"
Hello, world!
這在OSX上運行良好。 我認為這個錯誤與不正確的終止有關。 以下在linux上運行:
groovy -e 'println "Hello, world!";'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.