2012-09-12 11 views
8

Groovy komut dosyalarını, groovy-all jar dosyası kullanılarak Groovy yüklü olmayan sistemlerde çalıştırmak için bir örnek buldum.Groovy komut dosyalarını en iyi jar'ı kullanarak çalıştırırken, bir sınıf yolunu nasıl belirlersiniz?

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

sorun benim script src/com/örneklerde bulunan lib dizininde kavanoz artı diğer iki Groovy komut dosyaları bağlıdır: Ben şu girişiminde bulundu. Bunu çalıştırdığımda, hepsinin ithalat ifadelerinden şikayet ediyor. Aşağıdaki Groovy kullanarak ince yüklemiş olan bir sistem üzerinde çalıştırabilirsiniz:

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

nasıl harika-tüm kavanoz kullanarak, Groovy geçiri bu şekilde çalıştırmak yapmak, hem de bunu bir sınıf yolunu verir?

cevap

18

Hem -jar hem de -cp kodunu java komutunda birleştiremezsiniz, böylece ana sınıfı açıkça adlandırmanız gerekir. groovy-all JAR bildiriminde baktığımızda, ana sınıf adı groovy.ui.GroovyMain, yani (Mükemmel-hepsi zaten lib/* kapsamadığı olsaydı siz de -cp için eklemek gerekir)

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

gerekir.

1

Groovy dosyalarını "* .class" dosyalarına derlemenin bir yolu vardır. Ardından, $ GROOVY_HOME/embeddable dizinindeki jar'ı ekleyin ve sınıf yoluna yerleştirin. İşte

minimalist örnektir (ilk satır basit bir Unix kopyasıdır; sizin için çalışan ne olursa olsun kullanım):

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

tipik dağıtım için, kendi kavanoz inşa etmek Ant/Maven/Gradle kullanırsınız içinde derlenmiş Groovy (yani sınıf dosyaları) ile dosya.

İlgili konular