2010-02-15 26 views
23

JRuby uygulamamı tek başına bir JAR dosyasına derlemem gerekiyor. Bunu nasıl yapabilirim?Kullanılabilir JRuby JAR dosyası oluşturulsun mu?

+0

Bu soru şu soruları cevaplayabilir: http://stackoverflow.com/questions/1921475/compile-jruby-hello-world-problem – atomicules

+0

Bu soru, yalnızca (J) Ruby komut dosyasını derlemek ve yürütmekle ve Jar ile değil paketleme (dağıtıcı). –

cevap

1

sadece bir komut dosyası çalıştırmak için:

JRuby site JRuby download page de alabilirsiniz katedilebilen bir JAR dosyası vardır. JRuby tam JAR dosyasını istiyorsun. Uygulamanızı daha sonra

ile çalıştırabilirsiniz. Aynı JAR dosyasını da kaynak olarak oluşturabileceğinizi düşünüyorum. İndirilen kaynağı olarak

ant --projecthelp 

tamamen JAR dosyası içine bir Ruby komut dosyası gömmek için yapın: Embedding JRuby in Java iyi bir başlangıç ​​noktasıdır. Muhtemelen jruby-complete.jar dosyasını ayıklamak isteyeceksiniz, Java ana sınıfınızı ya bir JRuby komut dosyasına eklenmiş olan ya da içinde Ruby kodunu gömdüğünüzde, yeni giriş noktanıza işaret etmek için manifestin ana sınıfını değiştirin ve yedekleyin.

4

rawr'a bakın. Uygulamanızı bir JAR dosyasında paketleyen bir mücevher.

sen (here açıklandığı şekilde) projenizde her komut dosyası için bir .class dosyası üretmek zorundadır kaynak kodu koruması için derlemek ve sonra her biri için

require 'the_corresponding_class_file' 

orijinal senaryo içeriğini değiştirmek istiyorsanız derlenmiş komut dosyaları.

2

JRuby 1.6 bunu geliştirdi. Şimdi wiki - StandaloneJarsAndClasses - bölüm .class dosyaları ve bağımsız kavanozlar oluşturmak için jrubyc'in nasıl kullanılacağı hakkında bir bölüm var.

yeni derleyici ile

, sen vikiden bu örnekteki gibi dosyaları .class inşa edebilirsiniz:

 
[email protected]:/tmp/fnx$ cat my_foo.rb 
class Foo 
    def bar(a, b) 
    puts a + b 
    end 
end 
[email protected]:/tmp/fnx$ ~/jruby/bin/jrubyc --javac my_foo.rb 
Generating Java class Foo to C:/cygwin/tmp/fnx/Foo.java 
javac -d C:/cygwin/tmp/fnx -cp C:/cygwin/home/james/jruby/lib/jruby.jar;. C:/cygwin/tmp/fnx/Foo.java 
[email protected]:/tmp/fnx$ ls 
Foo.class Foo.java my_foo.rb 
[email protected]:/tmp/fnx$ javap.exe Foo 
Compiled from "Foo.java" 
public class Foo extends org.jruby.RubyObject{ 
    public static org.jruby.runtime.builtin.IRubyObject __allocate__(org.jruby.Ruby, org.jruby.RubyClass); 
    public Foo(); 
    public java.lang.Object bar(java.lang.Object, java.lang.Object); 
    static {}; 
} 

Ve org.jruby.JarBootstrapMain bir kavanoz için giriş noktasını ayarlamak ve bir kavanoz-ön yükleme alanı ekleyebilir .rb dosyası. Yürütülebilir bir JAR dosyası oluşturmak için 1.3.0 veya daha yenisi kullanılabilir.

22

Warbler.

Hızlı talimatlar. Burada vb JRuby`s mücevher, kullandığınızdan emin olun: Artık geçerli dizinde bir myapp.jar dosyası olmalıdır

$ gem install warbler 
$ mkdir bin 
$ cat <<EOF > bin/myapp 
#!/usr/bin/env jruby 

puts "Hello World" 

EOF 
$ chmod a+x bin/myapp 
$ warble jar 

. README'a göre, lib dizini için gereken tüm kitaplıkları eklemeniz ve .gemspec ya da Gemfile ya da Gemfile ya da .jar dosyasına konulması gereken diğer tüm taşları kontrol etmek için (ya da her ikisini birden) kullanabilirsiniz.

İlgili konular