我有一个在eclipse中开发的groovy项目,里面有一个包(hello)和一个groovy类(helloWorld.groovy).我已经导出了jar(Say HelloWorld.jar).我试图通过以下方式在unix中执行此jar: -
groovy -cp /tmp/HelloWorld.jar hello.helloWorld
Run Code Online (Sandbox Code Playgroud)
但得到以下错误: -
Caught: java.io.FileNotFoundException: /tmp/hello.helloWorld (/tmp/hello.helloWorld)
java.io.FileNotFoundException: /tmp/hello.helloWorld (/tmp/hello.helloWorld)
Run Code Online (Sandbox Code Playgroud)
除非包含静态方法,否则类只是一个声明.
您可以创建类的实例并从命令行脚本调用方法.
HelloWorld.groovy
package hello
class HelloWorld {
def main() { println "Hello World!" }
}
Run Code Online (Sandbox Code Playgroud)
编译和jar:
groovyc HelloWorld.groovy
jar -cf HelloWorld.jar hello
Run Code Online (Sandbox Code Playgroud)
执行:
groovy -cp HelloWorld.jar -e 'new hello.HelloWorld().main()'
Run Code Online (Sandbox Code Playgroud)
您可以在不创建类实例的情况下调用静态方法:
HelloWorld.groovy
package hello
class HelloWorld {
static main() { println "Hello World!" }
}
Run Code Online (Sandbox Code Playgroud)
编译和jar:
groovyc HelloWorld.groovy
jar -cf HelloWorld.jar hello
Run Code Online (Sandbox Code Playgroud)
执行:
groovy -cp HelloWorld.jar -e 'hello.HelloWorld.main()'
Run Code Online (Sandbox Code Playgroud)