2009-02-11 16 views
32

jython -cp FOO:BAR:BAZ argle.py'a benzer bir şey yapmak istiyorum.

Bu çalışma FOO, BAR ve BAZ eklerini $CLASSPATH ekler. Çalışma zamanında sys.path'a eklemeyi denedim, ancak kavanozlar için işe yaramıyor. Çalışma zamanında genişletilmiş kavanozlara sys.path yolunu eklerseniz, çalışır. Kavanoz dosyalarını patlatmanın basit bir alternatifi var mı? Bu betiği çalıştıran her kullanıcı için $CLASSPATH'un artırılması kabul edilebilir bir alternatif değildir.

Teşekkürler.

+0

Bunu da bilmek isterim! Jython başlangıç ​​senaryosuna baktım ama benim bash bunu anlamak için yeterince iyi değil. –

cevap

44

Sen python.path ayarlamak için -D seçeneğini kullanabilirsiniz: Aşağıdaki karınca pasajı fikrini gösterir .py burada hem Linux hem de Macintosh'ta çalışıyor. Windows'ta, noktalı virgüller için noktalı virgüllerdeki sütunları değiştirin ve altın olmalısınız.

+8

NB: Windows'da 'Replace colon': 'noktalı virgülle ayırıcı'; ' ayırıcı. jython -Dpython.path = FOO; BAR; BAZ argyle.py – monojohnny

+1

, Windows üzerinde, yolları belirlerken çift ters eğik çizgi 'yi kullanır ve yol adı boşluk boşluk içeriyorsa çift tırnak işareti ile çevreler. Takip eden eğik çizgi/gerekli olup olmadığını bilmiyorum. İşleri onsuz çalışırım. – Paolo

3

İlgili tüm sınıfları içeren büyük bir JAR oluşturabilirsiniz.

jython -Dpython.path=FOO:BAR:BAZ argyle.py 
+0

Şimdi komutumu bigjython.jar kullanarak nasıl çalıştırabilirim? –

+0

bigjython.jar, orijinal jython.jar ve ekstra kavanozlarınızı içerecek şekilde tasarlandı. Sonuçta, bigjython jar, jython.jar ile aynı şekilde çalışmalı ancak -cp parametresine gerek kalmadan. – axelclk

+1

jython.jar kullanmıyorum - argle.py dosyasını çalıştırmak için kabuktan 'jython' komutunu kullanıyorum –

4

java cp JAR1: JAR2: jython.jar org.python.util.jython PythonScript

<target name="jar"> 
    <mkdir dir="build/jar"/> 
    <unjar src="lib/jython.jar" dest="${classes.dir}" /> 
    <unjar src="lib/FOO.jar" dest="${classes.dir}" /> 
    <unjar src="lib/BAR.jar" dest="${classes.dir}" /> 
    <unjar src="lib/BAZ.jar" dest="${classes.dir}" /> 

    <jar destfile="build/jar/bigjython.jar" basedir="${classes.dir}"> 
     <manifest> 
      <attribute name="Main-Class" value="${main-class}"/> 
     </manifest> 
    </jar> 
</target> 
17

jython komut So ... java komutlarına argümanlar geçen destekler:

jython -J-cp JAR1:JAR2 --print 

yukarıda yazdırır:

jython -J-cp JAR1:JAR2 

Sen --print anahtarını ekleyerek çıkan komutu doğrulayabilir yürütmek yerine gerçek java komutu.

İlgili konular