4

eclipse で開発された groovy プロジェクトがあり、その中にパッケージ (hello) と groovy クラス (helloWorld.groovy) があります。jar をエクスポートしました (HelloWorld.jar と言います)。このjarをunixで実行しようとしています:-

groovy -cp /tmp/HelloWorld.jar hello.helloWorld

しかし、以下のエラーが発生します:-

Caught: java.io.FileNotFoundException: /tmp/hello.helloWorld (/tmp/hello.helloWorld)
java.io.FileNotFoundException: /tmp/hello.helloWorld (/tmp/hello.helloWorld)
4

2 に答える 2

6

クラスは、静的メソッドを含まない限り、単なる宣言です。

クラスのインスタンスを作成し、コマンド ライン スクリプトからメソッドを呼び出すことができます。

HelloWorld.groovy

package hello
class HelloWorld {
    def main() { println "Hello World!" }
}

コンパイルして jar します。

groovyc HelloWorld.groovy
jar -cf HelloWorld.jar hello

実行する:

groovy -cp HelloWorld.jar -e 'new hello.HelloWorld().main()'

クラスのインスタンスを作成せずに静的メソッドを呼び出すことができます。

HelloWorld.groovy

package hello
class HelloWorld {
    static main() { println "Hello World!" }
}

コンパイルして jar します。

groovyc HelloWorld.groovy
jar -cf HelloWorld.jar hello

実行する:

groovy -cp HelloWorld.jar -e 'hello.HelloWorld.main()'
于 2013-09-19T20:31:30.603 に答える
0

groovy コマンドは通常、groovy ファイルを 1 つのステップでコンパイルして実行するために使用されます。コマンド ライン引数はスクリプト ファイルであり、クラス名ではありません。

classGroovy スクリプトがファイルにコンパイルされている場合は、Java で実行します。例えば:

java -cp /tmp/HelloWorld.jar:$GROOVY_HOME/embeddable/groovy-all-2.1.7.jar hello.helloWorld
于 2013-09-19T20:07:45.927 に答える