JRuby uygulamamı tek başına bir JAR dosyasına derlemem gerekiyor. Bunu nasıl yapabilirim?Kullanılabilir JRuby JAR dosyası oluşturulsun mu?
cevap
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.
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ı.
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.
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.
Bu soru şu soruları cevaplayabilir: http://stackoverflow.com/questions/1921475/compile-jruby-hello-world-problem – atomicules
Bu soru, yalnızca (J) Ruby komut dosyasını derlemek ve yürütmekle ve Jar ile değil paketleme (dağıtıcı). –