10

groovy-all jar ファイルを使用して、Groovy がインストールされていないシステムで Groovy スクリプトを実行する例を見つけました。私は次のことを試みました:

java -cp src:.:lib/* -jar lib/groovy-all-2.0.1.jar src/com/example/MyScript.groovy

問題は、私のスクリプトが lib ディレクトリの jar ファイルと、src/com/examples にある他の 2 つの Groovy スクリプト ファイルに依存していることです。これを実行すると、それらすべてのインポートステートメントについて不平を言います。以下を使用して、Groovy が正常にインストールされているシステムで実行できます。

CLASSPATH="src:.:lib/*" groovy src/com/example/MyScript.groovy 

groovy-all jar を使用してこの方法で Groovy スクリプトを実行し、クラスパスを指定するにはどうすればよいですか?

4

2 に答える 2

20

-jarコマンドでと-cpの両方を組み合わせることはできないためjava、メイン クラスに明示的に名前を付ける必要があります。groovy-allJARのマニフェストを見ると、メインクラス名がgroovy.ui.GroovyMainになっているので、

java -cp 'src:.:lib/*' groovy.ui.GroovyMain src/com/example/MyScript.groovy

(groovy-all がまだカバーされていないlib/*場合は、それも追加する必要があり-cpます)。

于 2012-09-12T22:35:23.233 に答える
2

1 つの方法は、Groovy ファイルを「*.class」ファイルにコンパイルすることです。次に、$GROOVY_HOME/embeddable ディレクトリから jar を含めて、クラスパスに配置します。

以下は最小限の例です (最初の行は単純な Unix のコピーです。自分に合ったものを使用してください)。

$ cp /some-dir/groovy-1.8.5/embeddable/* . 
$ groovyc Test.groovy 
$ java -cp . groovy-all-1.8.5.jar Test 

典型的なディストリビューションでは、Ant/Maven/Gradle を使用して、コンパイル済みの Groovy (つまり、クラス ファイル) を含む独自の jar ファイルを作成します。

于 2012-09-12T21:11:51.377 に答える