2010-07-06 12 views
16

Rails uygulamam için JRuby 1.5 sınıf yoluna bir klasör eklemeye çalışıyorum. JRuby Wiki aşağıdaki öneriyor: "... config/environment.rb yılında JRuby Sınıfyoluna Yapılandırma dizinini ekleyin:" Benim için çalışmak görünmüyorRaylarda JRuby: Sınıf yoluna bir klasör eklemek

$CLASSPATH << "file:///#{File.expand_path(File.join(RAILS_ROOT, 'config'))}/" 

. Bunu, Rails::Initializer.run bloğundan önce, sonra veya içine koymamın önemi yoktur. Ne olursa olsun ne olsun,:

/home/sean/src/sbruby/seo/config/environment.rb:45:NoMethodError: undefined method `<<' for nil:NilClass 
/home/sean/apps/jruby/jruby-1.5.0/lib/ruby/gems/1.8/gems/rails-2.3.7/lib/rails/backtrace_cleaner.rb:2:NameError: uninitialized constant ActiveSupport::BacktraceCleaner 
/home/sean/apps/jruby/jruby-1.5.0/lib/ruby/gems/1.8/gems/rails-2.3.7/lib/console_with_helpers.rb:5:NameError: uninitialized constant ApplicationController 

Mesela ben resources/foobar denilen RAILS_ROOT altında bir klasör eklemeye çalışıyorum, bu yüzden environment.rb için aşağıdaki eklendi:

$CLASSPATH << "file:///#{File.expand_path(File.join(RAILS_ROOT, "resources", "foobar"))}/" 

aynı hatayı.

Raylar ile JRuby sınıf yoluna bir klasör eklemenin doğru yolu nedir?

cevap

26

Önce java gerekli. $ CLASSPATH değişkenini canlı yapan budur. JRuby öncesi 1.0 sürümlerinde

include Java 
$CLASSPATH << "your/folder" 

, bunun yerine require 'java' yapardım, ama modern bir JRuby sessizce çalışmıyor söyledi.

+0

Harika. Kaybettiğim buydu! – organicveggie

+0

Bu gereksinimi yansıtmak için JRuby wiki'yi güncelledim. Tekrar teşekkürler. – organicveggie

+2

, bu günlerde "java gerektirir" yerine "Java'yı" içermesine rağmen (https://blogs.oracle.com/coolstuff/entry/using_java_classes_in_jruby). – ottobar

İlgili konular