17

Rails アプリの JRuby 1.5 クラスパスにフォルダー全体を追加しようとしています。JRuby Wikiでは、次のように提案されていますconfig/environment.rb

$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_ROOTという名前の下にフォルダーを追加しようとしてresources/foobarいるので、次を に追加しましたenvironment.rb

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

同じエラー。

RailsでJRubyクラスパスにフォルダを追加する正しい方法は何ですか?

4

1 に答える 1

28

最初に Java が必要です。それが $CLASSPATH 変数を有効にするものです。

include Java
$CLASSPATH << "your/folder"

JRuby の 1.0 より前のバージョンではrequire 'java'代わりに実行していましたが、最新の JRuby ではサイレントに動作しません。

于 2010-07-07T04:27:37.023 に答える