2012-09-12 16 views
8

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

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

トラブルは私のスクリプトは、libディレクトリ内のjarプラスのsrc/COM /例にある2つの他のGroovyスクリプトファイルに依存しています。これを実行すると、すべてのインポートステートメントについて文句を言います。私は、Groovyのは、以下を使用して罰金インストールされているシステム上でそれを実行することができます:

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

は、どのように私はグルーヴィー-すべてのjarファイルを使用して、Groovyのスクリプトをこのように実行するだけでなく、それをクラスパスを与えていますか?

答えて

18

javaコマンドに-jar-cpの両方を組み合わせることはできません。したがって、メインクラスに明示的に名前を付ける必要があります。 groovy-all JARのマニフェストを見ると、メインクラス名はgroovy.ui.GroovyMainあるので、あなたは(グルーヴィー-すべてがすでにlib/*によってカバーされていなかった場合は、同様-cpにそれを追加する必要があります)

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

を必要としています。

1

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 

典型的な分布のために、あなた自身のjarファイルを構築するのAnt/Mavenの/のGradleを使用しますコンパイルされたGroovy(つまりクラスファイル)を含むファイルを作成します。

関連する問題