Groovy 스크립트에 전달 된 인수를 캡처하는 방법은 무엇입니까?
방금 Groovy로 시작했습니다. Groovy 스크립트에 대한 인수를 처리하는 방법에 대한 예제를 어디서도 찾을 수 없으므로이 방법을 직접 해킹했습니다. 더 나은 방법이 있어야합니까? 그렇다면 나는 아마도 명백한 것을 간과하고 있기 때문에 더 나은 방법을 찾고 있습니다.
import groovy.lang.Binding;
Binding binding = new Binding();
int x = 1
for (a in this.args) {
println("arg$x: " + a)
binding.setProperty("arg$x", a);
x=x+1
}
println binding.getProperty("arg1")
println binding.getProperty("arg2")
println binding.getProperty("arg3")
단순히 인수를 얻는 것보다 더 고급 파싱을 원한다면 Groovy CliBuilder를 사용하여 도움을 줄 수 있습니다. 명령 줄 플래그, 선택적 인수 및 사용 지침 인쇄에 도움이됩니다.
체크 아웃 CliBuilder 의 자바 독 또는 MrHakis의 포스트 그것에 대해.
질문해서 죄송합니다. 나는 그것을 알아 냈습니다.
println args[0]
println args[1]
println args[2]
가장 간단한 방법은 this.args
배열 로 사용 하는 것입니다.
test.groovy
println this.args[0]
요구:
C:>groovy test this
산출:
this
이 시도:
args.each{println it}
Java와 매우 유사하며 동일한 Java 구문을 사용할 수 있습니다. 예를 들어.
class TestExecutor {
public static void main(def args) {
println("Printing arguments");
for(String arguments : args) {
println (arguments);
}
}
}
그것을 실행하면 인자가 인쇄되는 것을 볼 수 있습니다
C:\Users\athakur\Desktop>groovy TestExecutor.groovy test1 test2 test3
Aug 16, 2014 11:47:56 AM org.codehaus.groovy.runtime.m12n.MetaInfExtensionModule
newModule
WARNING: Module [groovy-nio] - Unable to load extension class [org.codehaus.groo
vy.runtime.NioGroovyMethods]
Printing arguments
test1
test2
test3
또한 메인 메소드를 제공하지 않거나 위의 예에서와 같이 제공하면 인수를 얻을 수 args[i]
있지만 배열의 이름을 변경할 수 있습니다 (다시 java와 동일). 그래서 당신은 다음과 같은 것을 가질 수 있습니다.
public static void main(def argsNew) {
println("Printing arguments");
for(String arguments : argsNew) {
//using args in above for loop will throw error
println (arguments);
}
}
요점은 하드 코딩 된 것이 아니라는 것입니다. 마지막으로 다른 답변에서 제안 했듯이 스마트 구문 분석을 위해 항상 CliBuilder 를 사용할 수 있습니다 . 그러나 그것 역시 내부적으로 사용되었습니다 def options = cli.parse(args)
.
참고 URL : https://stackoverflow.com/questions/6367384/how-to-capture-arguments-passed-to-a-groovy-script
'Programing' 카테고리의 다른 글
문자열로 구성된 벡터 배열 초기화 (0) | 2020.11.20 |
---|---|
EditText에서 Enter 키를 방지하지만 텍스트는 여러 줄로 표시됩니다. (0) | 2020.11.20 |
'System.Web.Helpers.Json..cctor ()'메서드가 'System.Web.Helpers.Json.CreateSerializer ()'메서드에 액세스하려는 시도가 실패했습니다. (0) | 2020.11.20 |
조각에서 권한을 확인하는 방법 (0) | 2020.11.19 |
자바 스크립트 : 케이스 전환에서 조건 사용 (0) | 2020.11.19 |