2010-07-06 14 views
16

मैं अपने रेल ऐप के लिए JRuby 1.5 क्लासपाथ में एक संपूर्ण फ़ोल्डर जोड़ने की कोशिश कर रहा हूं। JRuby Wiki पता चलता है निम्नलिखित: "... config/environment.rb में JRuby classpath को config निर्देशिका जोड़ें:"रेल पर JRuby: क्लासपाथ में एक फ़ोल्डर जोड़ना

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

वह मेरे लिए काम करने के लिए प्रतीत नहीं होता। इससे कोई फर्क नहीं पड़ता कि मैंने इसे Rails::Initializer.run ब्लॉक के पहले या उसके अंदर रखा था या नहीं। कोई फर्क नहीं पड़ता कि मैं क्या, मिलती है:

/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 

उदाहरण के लिए, मैं RAILS_ROOTresources/foobar कहा जाता है के तहत एक फ़ोल्डर जोड़ने के लिए कोशिश कर रहा हूँ, इसलिए मैं environment.rb के लिए निम्न कहा:

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

एक ही त्रुटि।

रेल के साथ जेआरबी क्लासपाथ में फ़ोल्डर जोड़ने का सही तरीका क्या है?

उत्तर

26

पहले जावा की आवश्यकता है। यही कारण है कि $ CLASSPATH परिवर्तनीय लाइव बनाता है।

include Java 
$CLASSPATH << "your/folder" 

JRuby के पूर्व 1.0 संस्करणों में, आप require 'java' बजाय करना चाहते हैं, लेकिन आधुनिक JRuby में चुपचाप काम नहीं करता है।

+0

बहुत बढ़िया। यही वह था जो मैं याद कर रहा था! – organicveggie

+0

मैंने उस आवश्यकता को प्रतिबिंबित करने के लिए JRuby विकी को भी अपडेट किया। एक बार फिर धन्यवाद। – organicveggie

+2

हालांकि इन दिनों "आवश्यकता" जावा के बजाय "जावा शामिल करें" है (https://blogs.oracle.com/coolstuff/entry/using_java_classes_in_jruby)। – ottobar

संबंधित मुद्दे